使用方法:
(1)首先创建一个Handler对象
Handler handler = new Handler();
(2)创建一个Runnable对象
Runnable runnable = new Runnable(){
@Override
public void run() {
// TODO Auto-generated method stub
//要做的事情,这里再次调用此Runnable对象,以实现每两秒实现一次的定时器操作
handler.postDelayed(this, 2000);
}
};
(3)使用PostDelayed方法,两秒后调用此Runnable对象
handler.postDelayed(runnable, 2000);
(4)关闭此定时器
handler.removeCallbacks(runnable);
可以异步效果,但Runnable的执行是在Handler对象所在的线程
如果其所在的线程是UI线程的话,Runnable中还是不能执行耗时操作,不然会ANR
eg:
public class XXX extends Activity
{
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.loading); // 显示第1屏
Handler handler = new Handler();
handler.postDelayed(new splashhandler(), 2000); // 延迟2秒,再运行splashhandler的run()
}
class splashhandler implements Runnable
{
public void run()
{
startActivity(new Intent(getApplication(), SecondActivity.class)); // 显示第2屏
XXX.this.finish(); // 结束第1屏
}
}
}