2015-03-13 38 views
0

我的選擇是否影響廣播接收器內的組件?Android - 影響廣播接收器內部的GUI組件

當用戶點擊一個按鈕時,我生成一個進程並等待廣播接收器捕獲結果。一旦發生這種情況,我想讓按鈕改變它的標題。除了定義一個包含按鈕組件的全局變量並在廣播接收器中使用它,我怎麼能這樣做呢?我想知道是否有一個更清潔/更聰明的方法來做到這一點。

+0

您是否嘗試將偵聽器附加到將在Activity類中實現並將更新GUI的BroadcastReceiver? – 2015-03-13 09:45:50

+0

不,實際上我不知道該怎麼做 – Amos 2015-03-13 10:08:46

回答

2

使用事件總線(LocalBroadcastManager,Square的Otto,greenrobot的EventBus)。請您的BroadcastReceiver向公共汽車發送消息。讓UI層在相關時(例如,活動/片段位於前臺時)訂閱總線。然後,您的UI層將被通知有關來自總線的訂閱消息,並且可以更新其UI。

+0

你有中文嗎? :)對不起,但我不是那個專家知道如何實現你剛纔寫的東西 – Amos 2015-03-13 11:05:14

+0

@Amos:[This directory](https://github.com/commonsguy/cw-omnibus/tree/master/EventBus )包含來自[我的書](https://commonsware.com/Android)的示例項目,演示了我提到的所有三種事件總線實現的使用。 ['LocalBroadcastManager'是Android支持包的一部分](http://developer.android.com/reference/android/support/v4/content/LocalBroadcastManager.html)和[Otto](https://github.com/square/otto)和[greenrobot的EventBus](https://github.com/greenrobot/EventBus)有自己的網站。 – CommonsWare 2015-03-13 11:17:27