Android在BroadcastReceiver接收到推播,怎麼才能更新目前UI?
ringa_lee
ringa_lee 2017-05-24 11:37:50
0
3
1041

用的是小米推送。

然後我在整合了BroadcastReceiver的類別裡接收到小米推送給我推送的信息,但是我要同時更新UI上的未讀數,應該怎麼做?

ringa_lee
ringa_lee

ringa_lee

全部回覆(3)
洪涛

帶上資料再發一個自家app的廣播到對應的需要處理的UI類別上

过去多啦不再A梦

不知道你說的UI上的未讀數指的是launcher上的icon右上角角標還是app裡面UI的未讀數,前者的話跟開發者無關,國內廠商的系統都會自動統計app收到的通知數,後者的話在onReceivePassThroughMessage(Context context, MiPushMessage message)方法中透過解析message做對應的操作

    @Override
    public void onReceivePassThroughMessage(Context context,MiPushMessage message){
        mMessage=message.getContent();
        if(mMessage != null){
          //更新消息数目
        }
    }

如何更新訊息數目方式就比較多了,選一個合適的即可。例如可以被動展示:維護一個sharedPreference msgCout, 在對應頁面獲取msgCount展示到UI上;或者主動展示:可以在要展示訊息數量的介面註冊一個廣播,在上面的程式碼中發送訊息到這個廣播,也可以使用EventBus發送訊息等等

世界只因有你

BroadcastReceiver 做耗時操作會導致ANR,而且這裡面也沒辦法直接修改UI,在我們專案中,使用RxBus去通知UI更新,一般的話可以使用EventBus,樓上說的Sp中也可以,但這種並不會直接去修改UI,而是需要自己手動去刷新,如果使用MVP架構的話,直接可以在presenter中去調方法更新

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板