2016-02-18 51 views
0

我一週前開始使用Android,並且有一個設計問題。給後臺線程兩個處理程序與不同的活動交談?

我有兩個活動A和B.我目前在活動A。在活動A我啓動一個線程來偵聽網絡消息。在收到開始在後臺線程通過網絡,我需要進入活動B

問題:我可以簡單地從後臺線程調用startActivity(B.class)嗎?

如果不是,我想我使用Handler來自從活動A線程。

問題:我的後臺線程仍繼續執行一次活性的,創建它被破壞的人,只要我照顧,有沒有死引用?

最終我收到一個停止消息在後臺線程,再次,通過網絡。現在我需要回到活動A(或其他一些活動)。

問題:我應該在活動B創建一個新的處理程序實例來替換在後臺線程類的處理程序實例?我估計當我啓動它時,必須將線程對象傳遞給活動B。我想在切換處理程序實例時必須注意競爭條件。

所有這些似乎...複雜。有沒有更好的方法來實現這個目標?服務?尺蠖?所有這些都是新的,工具/設計選擇有點混亂。

回答

0

如果你有多個活動,那麼這不是做這件事的理想方式。 一旦活動破壞你的線程將不會有更多的參考,儘管它在後臺運行。使用單例類創建線程並將相應的處理程序註冊到該類,您將能夠通過這些處理程序輕鬆地與活動進行通信。