android中Handler简介&利用Handler兑现计时功能
Handler为android系统的线程通信工具,承担着主线程与分线程,分线程之间的通信功能,经常用到的有post(),sendMessage() 方法,前者是将一个线程加入线程队列,后者是发送一个消息到消息队列中,post方法还有两个变种,分别为定时发送postAtTime()和延时发送postDelayed()。
计时功能的实现主要利用了postDelayed()函数,即在run函数中以一秒为延时,不断调用自身,直到外部结束线程。代码如下:
public class HandlerDemoActivity extends Activity {
/** Called when the activity is first created. */
Count count;
int i = 0;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
count = new Count();
handler.post(count);
}
class Count implements Runnable{
@Override
public void run() {
Log.i("count",String.valueOf(i++));
handler.postDelayed(count, 1000);
}
};
final Handler handler = new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
}
};
}