前言:之所以使用handler.post(runnable)替换thread,是因为前者更安全,后者用起来可能会出问题,虽然如果处理的好的话出问题的概率很低,但是对于一个项目来说,很低的概率也是不能忍的;
步骤:
1.定义全局成员变量:
private Handler mHandler; private Runnable mRunnable;
2.在onCreate()中初始化:
mHandler = new Handler(); mRunnable= new Runnable() { @Override public void run() { // TODO 在这里写你要周期循环做的事,如果涉及到 UI 操作,请用 runOnUiThread 或给 UI 线程 sendMessage ; mHandler.postDelayed(this, 2000); //每隔2秒执行一次 } }; mHandler.post(mRunnable);//开始执行
3.在onDestroy()里面回收runnable:
if(mRunnable != null){ mHandler.removeCallBacks(mRunnable); }