private Timer timer; private TimerTask timerTask;
timer = new Timer(true); timerTask = new TimerTask() { @Override public void run() { float i = MyMotionUtils.readGPIO(); Log.i("TAG", "Service is running"); Log.i("TAG", String.valueOf(i)); if (i == 0){ MyMotionUtils.closeInputPort(); if (count1 == 0){ count1 = 1; Intent intent1 = new Intent(getApplicationContext(), SettingsActivity.class); intent1.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent1); MyMotionUtils.count = 1; } } } }; timer.schedule(timerTask, 3000, 1000);
万万不能忘记,当Timer在service里schedule后,只关掉service,timer还会继续跑的,必须要在service的ondestro里关掉Timer
@Override public void onDestroy() { super.onDestroy(); timer.cancel(); Log.i("TAG", "Service is destroy"); }