如果未完成,我會創建1分鐘延遲計時器以關閉服務。看起來是這樣的:如何取消代碼中的處理程序?
private Handler timeoutHandler = new Handler();
裏面的onCreate()
timeoutHandler.postDelayed(new Runnable()
{
public void run()
{
Log.d(LOG_TAG, "timeoutHandler:run");
DBLog.InsertMessage(getApplicationContext(), "Unable to get fix in 1 minute");
finalizeService();
}
}, 60 * 1000);
如果我得到這個前1分工作完成 - 我希望得到取消了延遲的事情,但不知道如何。
tiemoutHandler.removeCallbacksAndMessages(null);刪除所有回調以處理匿名Runnable。 (正如AbdelHady答案中所提到的) – Lorenz03Tx 2016-07-22 13:45:04
只要您不介意刪除所有回調,而不僅僅是這一個,這就是花花公子。 OP詢問關於刪除特定回調。 – 2016-07-26 20:34:51
非常感謝你 – 2018-02-15 06:22:24