0

我有一项活动,它会在手机启动后振动 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();


}

}
4

2 回答 2

2

你想取消你的runnable?有2个选项:

于 2013-01-07T21:56:02.660 回答
0

您可以使用 removeCallbacksAndMessages() 取消所有回调和消息;

public final void removeCallbacksAndMessages (Object token)

在 API 级别 1 中添加 删除所有挂起的回调帖子并发送 obj 为令牌的消息。如果 token 为 null,则所有回调和消息都将被删除。

于 2013-01-07T22:21:58.683 回答