2013-01-07 47 views
0

我有一个活动,它启动后振动手机9秒。当活动离开前景时,我想要取消振动动作。这里是我现在的代码:停止振动onDestroy

 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(); 


} 

} 
+2

如果你想停止当用户离开你的活动,你想重写'onPause()'而不是; 'onDestroy()'可能不一定会被调用。但我仍然没有看到问题所在。 –

+0

当我离开应用程序电话仍然振动9秒后! 这是问题:D –

回答

0

您可以使用removeCallbacksAndMessages()取消所有的CallBacks和Messages;

public final void removeCallbacksAndMessages (Object token) 

在API级别1 删除回调任何未决柱和发送其obj为令牌消息。如果令牌为空,则所有回调和消息都将被删除。