Reputation: 387
I have an activity that vibrates the phone for 9 seconds after it starts. I want the vibration action to be canceled when the activity leaves the foreground. Here is my current code:
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
public void run() {
// change image
screen.setImageResource(R.drawable.yama);
vibrateMe();
}
}, 9000);
}
public void vibrateMe() {
Vibrator vibrate = (Vibrator)getSystemService(Context.VIBRATOR_SERVICE);
vibrate.vibrate(2000);
}
public void stopVibrating(Vibrator vibrate) {
vibrate.cancel();
}
@Override
public void onDestroy() {
super.onDestroy();
}
}
Upvotes: 0
Views: 841
Reputation: 12243
You can cancel all CallBacks and Messages using removeCallbacksAndMessages();
public final void removeCallbacksAndMessages (Object token)
Added in API level 1 Remove any pending posts of callbacks and sent messages whose obj is token. If token is null, all callbacks and messages will be removed.
Upvotes: 0
Reputation: 10518
You want to cancel your runnable? There are 2 options:
Upvotes: 2