0
A
回答
2
+0
這看起來很有保證。而且,我可以使用postDelayed在5秒後取消我的AsyncTask嗎?謝謝。 – bobetko 2010-11-24 22:31:07
0
對不起,我沒有說清楚在這裏。這裏是我用於同步線程的例子。 我的函數listen()運行5秒鐘然後退出。聽()是一個UDP監聽...
的問題,我有這個代碼,它停止我的主線程(我的手機沒有響應),直到上市()完成其5秒跑完。我想使用異步線程來避免手機凍結。當我說我不能隨時間做任何事情時,我試圖說我不能在listen()函數中放置某種計時器,然後測量經過的時間,然後在5秒後退出。不能這樣做。
Thread t = new Thread() {
public void run() {
try {
listen();
} catch (IOException e) {
Log.d(TAG, "IOException (Discovery) " + e);
e.printStackTrace();
}
synchronized (this) {
notifyAll();
}
}
};
synchronized (t) {
t.start();
try {
t.join(5000); // 5 sec
} catch (InterruptedException e) {
e.printStackTrace();
}
}
3
在java中的線程是合作的 - 你不能強制停止線程。你可以做的是通知它停止(調用interrupt()或者提升一個標誌),然後代碼自動停止。
所以:
開始運行你的工作線程。在它內部重複(主工作循環內)檢查
isInterrupted()
並捕獲任何InterruptedExceptions
- 在這種情況下退出線程。啓動一個TimerTask爲5秒運行,然後調用
interrupt()
的工作線程。
更新:海報解釋說,他已經有一個工作代碼,他只需要而不阻塞UI異步運行它。
解決方案:設置AsyncTask
並運行代碼裏面的doInBackground()
方法。
相關問題
- 1. 停止異步任務後60秒
- 2. 停止5秒
- 3. 如何在運行後停止進程?
- 4. 如何停止功能,如果它運行超過5秒?
- 5. 在C中停止fgets 5秒後
- 6. Android異步任務停止運行幾次後運行
- 7. Uwamp Mysql Server從CD停止運行5秒鐘後
- 8. 5秒後停止Javascript函數/設置。5秒鐘後的Blur()
- 9. 如何停止可運行線程
- 10. Java線程/運行停止
- 11. 如何在運行經過T秒後停止fmincon?
- 12. 30秒後停止在線程中執行代碼
- 13. 如何停止正在運行的異步任務?
- 14. CSS旋轉輪5秒後停止?
- 15. 大約5秒後MediaPlayer停止播放
- 16. MPMoviePlayerController停止播放5秒後 - Swift
- 17. 球停止反彈後4-5秒
- 18. Android/Java:如何在5秒後停止下載?
- 19. Hadoop namenode守護進程在5秒鐘後靜默停止
- 20. 如何執行在PHP的API調用每5秒異步
- 21. 停止正在運行的線程
- 22. python停止線程正在運行
- 23. 如何在java中使用線程異步運行命令行
- 24. 如何在30秒後停止視頻
- 25. Media Player在新Activity上停留5秒後停止
- 26. 等待/異步 - 異步方法在主線程中運行
- 27. 如何停止在騾子異步流
- 28. iPhone:停止在後臺運行程序
- 29. 運行20秒後出現跨線程
- 30. 異步運行任務並在線程激活後返回
是否有計時器控制? – johnny 2010-11-24 22:01:38
你想跑5秒,沒有做任何事情?世界衛生大會? – 2010-11-24 22:12:28