我的選擇是否影響廣播接收器內的組件?Android - 影響廣播接收器內部的GUI組件
當用戶點擊一個按鈕時,我生成一個進程並等待廣播接收器捕獲結果。一旦發生這種情況,我想讓按鈕改變它的標題。除了定義一個包含按鈕組件的全局變量並在廣播接收器中使用它,我怎麼能這樣做呢?我想知道是否有一個更清潔/更聰明的方法來做到這一點。
我的選擇是否影響廣播接收器內的組件?Android - 影響廣播接收器內部的GUI組件
當用戶點擊一個按鈕時,我生成一個進程並等待廣播接收器捕獲結果。一旦發生這種情況,我想讓按鈕改變它的標題。除了定義一個包含按鈕組件的全局變量並在廣播接收器中使用它,我怎麼能這樣做呢?我想知道是否有一個更清潔/更聰明的方法來做到這一點。
使用事件總線(LocalBroadcastManager
,Square的Otto,greenrobot的EventBus)。請您的BroadcastReceiver
向公共汽車發送消息。讓UI層在相關時(例如,活動/片段位於前臺時)訂閱總線。然後,您的UI層將被通知有關來自總線的訂閱消息,並且可以更新其UI。
你有中文嗎? :)對不起,但我不是那個專家知道如何實現你剛纔寫的東西 – Amos 2015-03-13 11:05:14
@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
您是否嘗試將偵聽器附加到將在Activity類中實現並將更新GUI的BroadcastReceiver? – 2015-03-13 09:45:50
不,實際上我不知道該怎麼做 – Amos 2015-03-13 10:08:46