我有一個線程每隔30分鐘執行一次函數,所以我使用了處理程序和可運行線程(如postdelayed,removemessages)的組合。當時我找不到任何方法來停止線程。我嘗試了hander。刪除消息()和hander.removeCallbacks(Runnable),但忍不住。如何在Android中停止線程?
2
A
回答
3
我建議您使用TimerTask
而不是Thread
。在這裏你可以取消&重啓TimerTask
。
+0
謝謝Nik,如果對你有用,請接受它。所以它對其他人也很有用。 – Android 2012-01-06 10:39:43
0
要停止java中的線程,您需要調用thread.interrupt();
方法。
0
timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
if(your condition to stop thread)
{
timer.cancel();
}else
{
\\ your code
}
}
}, 0, 1800000);
使用定時器裏面....這將解決您的問題
1
我建議你使用alarmmanager。時間任務有問題。 有時,啓動時間任務的服務可能會被破壞。如果服務沒有運行,timertask也會被禁用。它在設備處於空閒狀態時經常發生。所以最好的解決方案是使用警報管理器,無論您的設備是否處於閒置狀態,每30分鐘觸發一次警報。您只需在首次啓動應用程序時啓動警報,並在設備重新引導時需要重新啓動警報。您可以使用廣播接收器在設備重啓時收到消息。
相關問題
- 1. 如何在主線程停止/暫停線程/ Activity在android中暫停/停止?
- 2. 如何在android中停止此線程?
- 3. 如何在android中停止asynctask線程?
- 4. 如何停止Android中的線程?
- 5. 如何停止android中的ASyncTask線程
- 6. Android:停止線程
- 7. 在Android上停止線程
- 8. 停止線程無論如何android
- 9. 如何停止線程當Tomcat停止
- 10. 如何在Android中停止線程處理程序?
- 11. 如何在Android中停止線程和處理程序
- 12. 如何在Android多線程程序中停止looper.loop()?
- 13. 如何在Java中停止線程?
- 14. 如何在Java中停止線程
- 15. 如何讓TcpClient在線程中停止?
- 16. 無法停止android線程
- 17. Android線程剛剛停止
- 18. Android線程突然停止
- 19. Android:線程停止工作
- 20. 如何停止線程?
- 21. 如何停止Java線程?
- 22. 如何停止線程
- 23. 如何停止線程python
- 24. 如何停止Django線程
- 25. 如何停止線程?
- 26. 如何停止Java線程?
- 27. 在python3中停止線程
- 28. 在Java中停止線程
- 29. 在C#中停止線程
- 30. 在Java中停止線程?
這看起來不像電池友好的代碼。您可能需要考慮使用AlarmManager來安排重複警報以觸發您的功能的執行。你使用計時器事件30分鐘的時間間隔是否是 – THelper 2012-01-06 10:38:14
? – 2012-01-06 10:42:13