我在輔助線程上執行的對象中有一個方法。如果發生錯誤,該方法要告訴對象的委託對此作出響應。響應必須發生在主線程(即UI線程)上。Android和從輔助線程調用主線程
如何從輔助線程調用主線程?我的對象的類不擴展Activity
,並且我沒有明顯的Activity
對象。
我在輔助線程上執行的對象中有一個方法。如果發生錯誤,該方法要告訴對象的委託對此作出響應。響應必須發生在主線程(即UI線程)上。Android和從輔助線程調用主線程
如何從輔助線程調用主線程?我的對象的類不擴展Activity
,並且我沒有明顯的Activity
對象。
使用Android處理程序。這裏有一個例子
http://www.tutorialforandroid.com/2009/01/using-handler-in-android.html
當然,你將不得不處理程序傳遞到你的第二個線程不知何故。
您可以在第二個類中創建一個變量Context,然後將該活動引用傳遞給該變量中的該類。
稍後,您可以以與活動類似的方式使用上下文。
有幾個策略可以實現:AsyncTask,Handler,View.post()。它們全部在painless threading article.
請不要在您的回覆中發佈沒有完整解釋的網站鏈接。鏈接現在被打破,這個答案已經變得無用 –
你如何開始自己回答問題,而不是教他人如何回答問題?或者更好的是,建議使用更新後的鏈接編輯這個答案 - 這是一個官方的Android開發者文章,任何你可以通過簡單的搜索找到一個新的鏈接:http://android-developers.blogspot.si/2009/05/painless -threading.html –
對不起,如果我碰到粗魯 - 沒有打算。只是說最好回答並用參考鏈接備份答案。謝謝 –
中描述。我在主持線程中創建了在我的根活動中創建的Handler,並在其中持有一個引用。另一個問題就是在哪裏創建一個「Toast」,我想要彈出 - 我需要通過「this」訪問上下文,但是「this」在輔助線程中沒有多大意義。這一切似乎比它真正需要的複雜一點,但那可能就是我。無論如何,它的工作原理並不算太壞。 – SK9