-2
管理在後臺工作的線程的正確方法是什麼?處理線程
例如,我有創建多個線程的活動。我需要做以下幾點:
1)消滅所有線程時應用程序被破壞
2)暫停活動中創建的線程,如果用戶從活動
3導航離去的),如果活動被破壞
我唯一想到的就是將所有線程變量聲明爲public,以便能夠在上面列出的這些事件上發出t.destroy()或類似的東西。 首先,我不確定這是否是正確的方式,其次,我不喜歡它,因爲我將不得不更改代碼以確保我可以引用創建的所有線程。
例如,我有我的活動實例化新對象(例如LoadImages.class),並且對象根據要加載的圖像數量創建多個線程的情況。線程在調用活動中不可見。
那麼,我是否必須將線程引用傳遞給調用活動,或者有一些方法可以知道誰是線程的父節點,並且只銷毀具有特定父Activity的線程?
是的。你是對的。不需要步驟1.如何銷燬線程?你是否繼續參考創建的每個線程(在LoadingImage中),以便銷燬或停止它們(在發佈中)? – bobetko 2011-04-08 15:23:31
那麼,通常你應該使用'AsyncTask'並調用'task.cancel(false)'。 'Thread'沒有公開一個好的停止界面。查看http://developer.android.com/reference/java/lang/Thread.html#destroy() – 2011-04-08 15:32:43
使用AsyncTask看起來似乎是提供取消方法的最佳方式。我已更正我的代碼並將新方法添加到加載類中,一切都很好。 – bobetko 2011-04-08 21:16:17