2013-07-31 56 views
0

開始時,我想爲我的糟糕英語道歉。Android:後退鍵停止以下活動

有我的問題:

下面計時器顯示的消息在每3秒,但是當我從程序失控(使用後退按鈕)消息仍然彈出。

public Runnable mUpdateTimeTask = new Runnable(){   
     @Override 
     public void run() { 
      // TODO Auto-generated method stub 
      while (true) { 
       try { 
        Thread.sleep(3000);} 
       catch (Exception e) { 
        // TODO: handle exception 
       } 
      mHandler.post(new Runnable(){ 
     @Override 
     public void run() { 
          Toast.makeText(getApplicationContext(), "Testing 3 Seconds", Toast.LENGTH_LONG).show(); 
        } 
       }); 
      } 
     } 

}; 

我已經使用mHandler.removeCallbacks(mUpdateTimeTask);仍然無法阻止它。

在此先感謝。

回答

0

該調用是由一個可運行的線程類實現的,該類在按下「後退」按鈕時仍處於活動狀態。它會彈出消息,直到應用程序破壞。 相反,使用這樣的:

handler.removeCallbacksAndMessages(null); 

在文檔的removeCallbacksAndMessages它說。這裏是鏈接: developer website documentation link

「刪除任何未完成的回調和已發送消息的obj爲標記的帖子,如果標記爲空,則所有回調和消息都將被刪除。

0

我最近遇到了同樣的問題,搜索了很多後,我找到了解決方案here

handler.removeCallbacksAndMessages(null); 

只會停止掛起消息(Runnables)。它不適用於當前正在運行的可運行程序。您將不得不編寫自己的類來停止當前正在運行的可運行程序。

相關問題