A.Jouni
A.Jouni

Reputation: 387

Stop vibrating onDestroy

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

Answers (2)

C0L.PAN1C
C0L.PAN1C

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

Leonidos
Leonidos

Reputation: 10518

You want to cancel your runnable? There are 2 options:

Upvotes: 2

Related Questions