2011-03-31 44 views
1

我試圖讓Android應用程序中的兩個線程彼此進行通信。很簡單,對吧?我有兩個線程:插槽和多線程與Android

  • 主線程控制應用程序的用戶 接口(線程 A)
  • 的其他控件的TCP套接字 (線程B)

此刻,爲了使線程A向線程B發送消息,我使用了一個具有靜態實例數據和可以由線程A設置的靜態方法的類。線程B正在使用循環來檢查套接字上的傳入數據,所以我使用相同的循環來檢查該補充類中的變化。這就是我設法將數據從線程A發送到線程B的方式。但是,我還希望線程B能夠通知線程A(主用戶界面線程)套接字已關閉,並對其執行操作。不幸的是,線程A沒有使用任何循環來連續檢查某些東西。所以我的問題是,我如何通知線程B中線程B的變化?我已經完成搜索並發現Observer模式會很有用,但我不確定我是否可以將Observer模式引入到現有設置中。任何幫助或指導思想將不勝感激!謝謝。

回答

2

在您的UI線程(線程A)中實例化一個處理程序,將處理程序的引用傳遞給線程B.當您想要通知線程A的某些內容時,創建一個消息對象並使用sendMessage()的處理程序。一個非常簡單的圖案的

here

檢查處理程序官方文件和消息類別

谷歌的Android處理機教程

+0

噢,優異。這應該完美。謝謝! – mccolo 2011-03-31 20:56:37