项目需要,然后去看了资料直接看代码吧
// 重复执行任务 private final int EVENT_LOCK_WINDOW = 0x200; private Handler mHandler; private Timer mTimer; private MyTimerTask mTimerTask; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 延时重复操作 mHandler = new Handler(Looper.getMainLooper()) { public void handleMessage(Message message) { if (message.what == 0x200) { /** * 要执行的方法 */ } } }; mTimer = new Timer(true); } // 开始任务 public void startLockWindowTimer() { if (mTimer != null) { if (mTimerTask != null) { mTimerTask.cancel(); // 将原任务从队列中移除 } mTimerTask = new MyTimerTask(); // 新建一个任务 //调用这个Timer去定时执行某项任务,三个参数分别为,timerTask为这项任务具体内容,0是触发这个timer到执行 //TimerTask中run函数需要等待的时间(设置为0表示无延迟的五执行TimerTask中得run函数),2000代表第一次调用成功后每隔2秒再次调用 mTimer.schedule(mTimerTask , 2000); } } class MyTimerTask extends TimerTask { @Override public void run() { // TODO Auto-generated method stub Message msg = mHandler.obtainMessage(EVENT_LOCK_WINDOW); msg.sendToTarget(); } }
PS:在需要执行的地方直接加 startLockWindowTimer(); 方法即可