Android中的Timer一般像下面这样写:

java代码:
Timer timer = new Timer( );

TimerTask task = new TimerTask( ) {
public void run ( ) {
Message message = new Message( );
message.what = 1;
handler.sendMessage(message);
}
};

final Handler handler = new Handler( ) {
public void handleMessage(Message msg) {
switch (msg.what) {
case 1:
log.e("Timer","Timer");
update( );
break;
}

super.handleMessage(msg);
}
};

protected void onDestroy ( ) {
if (timer != null) {
timer.cancel( );
timer = null;
}
super.onDestroy( );
}
protected void onCreate (Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setContentView(R.layout.main);
timer.schedule(task,1000,5000);
}


最重要的一点是 timer.schedule(task,1000,5000),如果设置为 timer.schedule(task,5000)是不会工作的。

因为timer.schedule(task,5000) 是表示执行一次的任务。
timer.schedule(task,1000,5000)表示 1 秒钟后开始 5 秒钟为周期 重复执行,
更好的方法是通过下面的代码 (Handler加Runnable线程,更简洁)

java代码:
private Handler handler = new Handler( );

private Runnable runnable = new Runnable( ) {
public void run ( ) {
update( );

handler.postDelayed(this,1000);
//postDelayed(this,1000)方法安排一个Runnable对象到主线程队列中
}
};

handler.postDelayed(runnable,1000); // 开始Timer
handler.removeCallbacks(runnable); //停止Timer


更多相关文章

  1. Android学习笔记(九)
  2. android 升级包检测并更新实现
  3. 在Eclipse中导入整个Android系统代码
  4. MQTT的学习研究(十五) MQTT 和android整合文章
  5. Android应用程序绑定服务(bindService)的过程源代码分析(3)
  6. android 升级包检测并更新实现
  7. Android应用程序组件Content Provider的启动过程源代码分析(3)
  8. Android应用程序组件Content Provider的启动过程源代码分析(5)
  9. Android代码实现APK文件的安装与卸载

随机推荐

  1. Android(安卓)消息机制
  2. Android自动化测试工具——Monkey
  3. 【Android】开机自启动Service
  4. Android资源(res和assets目录)
  5. Android(安卓)Studio 之 Gradle与Project
  6. Android(安卓)NDK 从入门到精通(汇总篇)
  7. Android之Media播放器源码分析(framework
  8. Android(安卓)应用程序窗体显示状态操作(r
  9. Android(安卓)-- Looper.prepare()和Loop
  10. 详细介绍android rom移植知识普及