2013-01-07 44 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爲令牌消息。如果令牌爲空,則所有回調和消息都將被刪除。