在我的應用程序中,活動啓動從服務器下載圖像的線程。有超過30張圖片。在下載時,用戶可以切換到另一個活動。所以我希望線程應該停止做任何事情。我在onDestroy()中使用了mThread.interrupt()方法,但它沒有奏效。怎麼做?當活動結束時停止線程下載圖像
0
A
回答
0
我可以建議簡單&更安全的方法來處理在您應用此
使用共同的價值; SharedPreferences或應用程序上下文 答案= IsStopDownload 值=真/假
PART.1) 在應用程序上下文(MyApplication的)內部
private boolean isAppActive = false;
public void setAppState(Context context, boolean state) {
isAppActive = state;
// note: you can also store this in SharedPreferences
}
public boolean getAppState(Context context) {
return isAppActive;
// note: you can also load this from SharedPreferences
}
PART.2) 活動的onResume和的onPause被保證識別您的活動狀態的地方。
的onResume - >活動活躍 的onPause - >活動不活躍
PART.3) 讓你的線程檢查活動狀態,如果不活動,可自行停止,那是安全的,然後讓外部中斷。從外部打斷時,線程可能會很奇怪,從內部打破循環更安全。
例如
((MyApplication)context.getApplicationContext()).getAppState(context);
如果那是假的,線程停止本身
希望這有助於...
---
社會編碼@AspiroTV
0
當用戶將切換活動,這一個不會被破壞,但暫停,所以試圖你的代碼是onPause()可能工作。
+0
我試過,但onPause()沒有工作。 –
0
首先,你可能使用AsyncTask比Thread
好得多,所以,我個人根本不會使用Thread
。根據我的小見解和小體驗,在你使用它們的情況下,它們會隨着代碼的不斷增長而增長。
第二,正如Nik博士所說,使用Service可以更好地完成這項任務。在我看來,這是你能做的最好也是最安全的事情。
我想指出幾個原因,你應該使用一個:
- 該服務,因爲活動的消失並不需要停止。
- 服務是非常容易和快速實施。並且完成的通知代碼也很容易。
- 您正在下載圖像,並且如果可以,儘可能一次完成這項工作總是更好,以節省本地用戶和緩存圖像的帶寬和連接時間。過去這種情況更糟,因爲今天的手機是完全成熟的電腦。但編碼效率總是很重要。因此,恕我直言,你應該儘可能保持連接的需要。
- 最後,即使在活動內部使用
AsyncTask
也需要一個棘手的(簡單但仍然棘手的)代碼,以便在活動消失時捕獲和分離任務,並在返回時檢查空值。由於您正在下載圖片,而且這可能需要一些時間,用戶可能會要求方向更改(將設備轉向橫向),因此您需要即。示例中的「orientation orientation asynctask」的搜索stackoverflow。
也可能有其他原因,但那些現在是我的頭頂。當然,這是我的看法。
相關問題
- 1. 當WebView結束時停止
- 2. Android:當活動結束時MP3不停止
- 3. 停止滑動時結束
- 4. 當活動結束時持久位圖
- 5. 停止振動機器人當活動結束
- 6. 當用戶停止與活動交互時啓動線程
- 7. 活動時Android停止線程在銷燬時的活動
- 8. 線程暫停/停止活動恢復
- 9. Android,在活動暫停或停止時終止線程?
- 10. 當活動暫停時Runnable停止
- 11. 如何在其他活動結束之前停止活動?
- 12. 線程停止時無法結束工作流程
- 13. twilio - 呼叫結束時停止流動
- 14. 在循環結束時停止動畫
- 15. 當試圖打開一個活動時,應用程序停止
- 16. 在後臺線程上結束活動
- 17. 當UIImageView圖像加載完成時停止UIActivityIndicatorView動畫
- 18. 停止線程並更改活動
- 19. 直到線程結束爲止的空白活動
- 20. MonoDroid的 - 當活動結束
- 21. 當動畫結束時,保留動畫的結尾圖像
- 22. 當歌曲結束時,隨機按鈕停止應用程序
- 23. 防止線程結束
- 24. 當等待()結束時進程終止
- 25. 如何停止線程當Tomcat停止
- 26. 如何停止下載單個圖像
- 27. 當活動停止時不停止服務
- 28. 當網頁加載時停止並隱藏活動指示器
- 29. 當發生異常時停止線程
- 30. 當從網站下載字符串時停止窗體凍結
你的情況我建議使用服務 –