重复执行任务


项目需要,然后去看了资料直接看代码吧   
    // 重复执行任务
    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(); 方法即可


猜你喜欢

转载自blog.csdn.net/u013323045/article/details/45565555