2011-09-09 87 views
1

我在輔助線程上執行的對象中有一個方法。如果發生錯誤,該方法要告訴對象的委託對此作出響應。響應必須發生在主線程(即UI線程)上。Android和從輔助線程調用主線程

如何從輔助線程調用主線程?我的對象的類不擴展Activity,並且我沒有明顯的Activity對象。

回答

1

使用Android處理程序。這裏有一個例子

http://www.tutorialforandroid.com/2009/01/using-handler-in-android.html

當然,你將不得不處理程序傳遞到你的第二個線程不知何故。

+0

中描述。我在主持線程中創建了在我的根活動中創建的Handler,並在其中持有一個引用。另一個問題就是在哪裏創建一個「Toast」,我想要彈出 - 我需要通過「this」訪問上下文,但是「this」在輔助線程中沒有多大意義。這一切似乎比它真正需要的複雜一點,但那可能就是我。無論如何,它的工作原理並不算太壞。 – SK9

1

您可以在第二個類中創建一個變量Context,然後將該活動引用傳遞給該變量中的該類。

稍後,您可以以與活動類似的方式使用上下文。

1

有幾個策略可以實現:AsyncTask,Handler,View.post()。它們全部在painless threading article.

+0

請不要在您的回覆中發佈沒有完整解釋的網站鏈接。鏈接現在被打破,這個答案已經變得無用 –

+0

你如何開始自己回答問題,而不是教他人如何回答問題?或者更好的是,建議使用更新後的鏈接編輯這個答案 - 這是一個官方的Android開發者文章,任何你可以通過簡單的搜索找到一個新的鏈接:http://android-developers.blogspot.si/2009/05/painless -threading.html –

+0

對不起,如果我碰到粗魯 - 沒有打算。只是說最好回答並用參考鏈接備份答案。謝謝 –

相關問題