android TimerTask的使用 每隔1秒向控制台打印Log 为了线程安全应该通过hangler来实现

来源:互联网 发布:烤箱daogrs 知乎 编辑:程序博客网 时间:2024/05/21 16:58
 

package com.liudan.activity;

import java.util.Timer;
import java.util.TimerTask;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;

public class Mtimer extends Activity {
 
 private static final String TAG = "Mtimer";

 private Timer mTimer = new Timer(true);

 private TimerTask mTimerTask;

 /** Called when the activity is first created. */
 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);

  mTimerTask = new TimerTask(){

   public void run(){
    Log.i(TAG, "Mtimer----------------------------");

   }
  };

  mTimer.schedule(mTimerTask, 5000, 1000); // 在5秒后每1秒执行一次定时器中的方法,比如本文为调用log.v打印输出。
  new StopeThread().start();
 }
 private class StopeThread extends Thread{
  @Override
  public void run() {
   Log.i(TAG, "run----------------------------");
   try {
    StopeThread.sleep(10000);    //休眠10秒后停止执行
    if(!mTimerTask.cancel());{
     mTimer.cancel();
    }
        
   } catch (InterruptedException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
   
  }
 }
}

 为了线程安全应该通过hangler来实现

下面是copy代码     代码来处——http://developer.51cto.com/art/201001/181040.htm

  1. package com.ray.test;   
  2. import java.util.Timer;   
  3. import java.util.TimerTask;   
  4. import android.app.Activity;   
  5. import android.os.Bundle;   
  6. import android.os.Handler;   
  7. import android.os.Message;   
  8. public class TestTimer extends Activity {   
  9. Timer timer = new Timer();   
  10. Handler handler = new Handler(){   
  11. public void handleMessage(Message msg) {   
  12. switch (msg.what) {   
  13. case 1:   
  14. setTitle("hear me?");   
  15. break;   
  16. }   
  17. super.handleMessage(msg);   
  18. }   
  19. };   
  20. TimerTask task = new TimerTask(){   
  21. public void run() {   
  22. Message message = new Message();   
  23. message.what = 1;   
  24. handler.sendMessage(message);   
  25. }   
  26. };   
  27. public void onCreate(Bundle savedInstanceState) {   
  28. super.onCreate(savedInstanceState);   
  29. setContentView(R.layout.main);   
  30. timer.schedule(task, 10000);   
  31. }   

 

原创粉丝点击