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


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线程,更简洁)


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 Menu菜单操作(偏门--监听 more 操作)
  2. Android(安卓)驱动之旅 第四章:在Android(安卓)系统中编写JNI 方
  3. Android交互体验必知:功能按键事件
  4. Android(安卓)webview注入自己的js代码(js传入function等其他参数
  5. 一种绕过Android(安卓)P对非SDK接口限制的简单方法
  6. Android的消息机制,用Android线程间通信的Message机制,Android中Ha
  7. android进程和线程模型
  8. Android中的Ajax
  9. Android中AsyncTask的简单用法 .

随机推荐

  1. Android(安卓)TabSwitcher自定义控件
  2. android显示和隐藏键盘
  3. Understanding the takePicture in Andro
  4. Android(安卓)禁止 ListView 上下滑动
  5. 智能手机软件平台 Android(安卓)VS iPhon
  6. Android自由选择TextView的文字
  7. canvas.drawRoundRect方法,绘制圆角矩形
  8. Android动画效果 Android(安卓)Animation
  9. db文件查看工具SQLiteExpert
  10. Android(安卓)广播Action大全