簡體   English   中英

如何在Android中停止Thread?

[英]How to stop Thread in Android?

我有一個線程每30分鍾執行一次函數,因此我使用了處理程序和可運行線程的組合(例如postdelayed,removemessages)。當時我找不到任何方法來停止線程。 Removemessages()和hander.removeCallbacks(Runnable),但無濟於事。

我建議您使用TimerTask而不是Thread 在這里您可以取消並重新啟動TimerTask

我建議您使用Alarmmanager。 timertask有問題。 有時啟動計時器任務的服務可能會被破壞。 如果服務未運行,timertask也將被禁用。 設備處於空閑狀態時,經常發生這種情況。 因此,最好的解決方案是使用alarmmanager,該設備每30分鍾觸發一次警報,無論您的設備是否處於空閑狀態。 僅在首次啟動應用程序時才需要啟動警報,並且在設備重啟后需要重新啟動。 重啟設備后,您可以使用廣播接收器獲取消息。

要在Java中停止線程,您需要調用thread.interrupt(); 方法。

timer = new Timer();
    timer.schedule(new TimerTask() {

        @Override
        public void run() {
                                         if(your condition to stop thread)
                                         {
                                            timer.cancel();
                                          }else
                                         {
                                             \\ your code
                                          }
                                      }
            }, 0, 1800000);

在內部使用計時器...。它將解決您的問題

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM