Android中支持暂停和恢复的Timer和TimerTask封装

由于Timer和TimerTask类的对象只能用一次,所以如果想多次调度同一样的任务,必须重新实例化。

所以,封装了一个TimerHelper类,测试可用。

 1 public abstract class TimerHelper {
 2 
 3     private Timer mTimer = null;
 4 
 5     public void start(long delay, long period)
 6     {
 7         stop();
 8 
 9         mTimer = new Timer();
10         mTimer.schedule(new TimerTask() {
11             @Override
12             public void run() {
13 
14                 TimerHelper.this.run();
15             }
16         }, delay, period);
17     }
18 
19     public void stop()
20     {
21         if (mTimer != null) {
22 
23             mTimer.cancel();
24             mTimer = null;
25         }
26     }
27 
28     public TimerHelper() {
29 
30         mTimer = null;
31     }
32 
33     public abstract void run();
34 }

 

 

示例代码:

 1 public class MainActivity extends Activity {
 2 
 3     private final String TAG = this.getClass().getSimpleName();
 4 
 5     private TimerHelper mTimerHelper = null;
 6 
 7     @Override
 8     protected void onCreate(Bundle savedInstanceState) {
 9         super.onCreate(savedInstanceState);
10         setContentView(R.layout.activity_main);
11 
12         ///
13         mTimerHelper = new TimerHelper() {
14             @Override
15             public void run() {
16 
17                 Log.d(TAG, "timer run-----");
18             }
19         };
20     }
21 
22     @Override
23     protected void onResume() {
24 
25         mTimerHelper.start(500, 5000);
26 
27         super.onResume();
28     }
29 
30     @Override
31     protected void onPause() {
32 
33         mTimerHelper.stop();
34 
35         super.onPause();
36     }
37 }

 

转载于:https://www.cnblogs.com/tianjun9/p/4213113.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值