方法一:
new Handler(new Handler.Callback() { //处理接收到的消息的方法 @Override public boolean handleMessage(Message arg0) { //实现页面跳转 startActivity(new Intent(getApplicationContext(),MainActivity.class)); return false; } }).sendEmptyMessageDelayed(0, 3000); //表示延时三秒进行任务的执行
方法二:
private void enterHome(){ Timer time = new Timer(); TimerTask tk = new TimerTask() { Intent intent = new Intent(MainActivity.this,HomeActivity.class); @Override public void run() { // TODO Auto-generated method stub startActivity(intent); finish(); } };time.schedule(tk, 2000); }
timer的功能也可以通过自己构造线程,然后在线程中用sleep来模拟停止一段时间,然后再执行某个动作。
其实,看一下timertask的源码就立即可以知道,timertask就是实现了runnable接口的。也就是说,通过timer来间隔一段时间执行一个操作,也是通过一个线程来做到的。
定时器实现:
handler = new Handler(); runnable = new Runnable() { @Override public void run() { // handler自带方法实现定时器 System.out.println("33331"); handler.postDelayed(this, 1000*3);//每隔3s执行 } }; handler.postDelayed(runnable, 1000*60);//延时多长时间启动定时器