Android 的Timer 一般如下面所寫
Java代碼
- Timer timer = new Timer();
- TimerTask task = new TimerTask() {
- public void run() {
- Message message = new Message();
- message.what = 1;
- handler.sendMessage(message);
-
- }
-
- };
Java代碼
- final Handler handler = new Handler() {
-
- public void handleMessage(Message msg) {
- switch (msg.what) {
- case 1:
- Log.e("Timer", "Timer");
- update();
- break;
- }
- super.handleMessage(msg);
- }
-
- };
Java代碼
- protected void onDestroy() {
- if (timer != null) {
- timer.cancel();
- timer = null;
- }
- super.onDestroy();
- }
最重要一點是timer.schedule(task, 1000, 5000);如果設定為timer.schedule(task, 5000)是不會工作的。
Java代碼
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- this.setContentView(R.layout.main);
- timer.schedule(task, 1000, 5000);
- }
但更好的方法是通過下面的代碼
Java代碼
- private Handler handler = new Handler();
-
- private Runnable runnable = new Runnable() {
-
- public void run() {
- update();
- handler.postDelayed(this, 1000);
- }
-
- };
開始Timer
Java代碼
- handler.postDelayed(runnable, 1000);
停止Timer
Java代碼
- handler.removeCallbacks(runnable);