我有一个活动,它会在手机启动后震动9秒。我希望在活动离开前台时取消振动动作。下面是我当前的代码:
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();
}
}发布于 2013-01-08 05:56:03
你想取消你的runnable吗?有两个选项:
runnable你可以用handler.removeCallbacksAndMessages(null)
将其删除
发布于 2013-01-08 06:21:59
可以使用removeCallbacksAndMessages()取消所有的CallBacks和消息;
public final void removeCallbacksAndMessages (Object token)在API级别1中添加,删除所有挂起的回调posts,并发送obj为token的消息。如果token为空,则所有回调和消息都将被移除。
https://stackoverflow.com/questions/14204551
复制相似问题