用的是小米推送。
然後我在整合了BroadcastReceiver的類別裡接收到小米推送給我推送的信息,但是我要同時更新UI上的未讀數,應該怎麼做?
ringa_lee
帶上資料再發一個自家app的廣播到對應的需要處理的UI類別上
不知道你說的UI上的未讀數指的是launcher上的icon右上角角標還是app裡面UI的未讀數,前者的話跟開發者無關,國內廠商的系統都會自動統計app收到的通知數,後者的話在onReceivePassThroughMessage(Context context, MiPushMessage message)方法中透過解析message做對應的操作
onReceivePassThroughMessage(Context context, MiPushMessage message)
@Override public void onReceivePassThroughMessage(Context context,MiPushMessage message){ mMessage=message.getContent(); if(mMessage != null){ //更新消息数目 } }
如何更新訊息數目方式就比較多了,選一個合適的即可。例如可以被動展示:維護一個sharedPreference msgCout, 在對應頁面獲取msgCount展示到UI上;或者主動展示:可以在要展示訊息數量的介面註冊一個廣播,在上面的程式碼中發送訊息到這個廣播,也可以使用EventBus發送訊息等等
sharedPreference msgCout
BroadcastReceiver 做耗時操作會導致ANR,而且這裡面也沒辦法直接修改UI,在我們專案中,使用RxBus去通知UI更新,一般的話可以使用EventBus,樓上說的Sp中也可以,但這種並不會直接去修改UI,而是需要自己手動去刷新,如果使用MVP架構的話,直接可以在presenter中去調方法更新
帶上資料再發一個自家app的廣播到對應的需要處理的UI類別上
不知道你說的UI上的未讀數指的是launcher上的icon右上角角標還是app裡面UI的未讀數,前者的話跟開發者無關,國內廠商的系統都會自動統計app收到的通知數,後者的話在
onReceivePassThroughMessage(Context context, MiPushMessage message)
方法中透過解析message做對應的操作如何更新訊息數目方式就比較多了,選一個合適的即可。例如可以被動展示:維護一個
sharedPreference msgCout
, 在對應頁面獲取msgCount展示到UI上;或者主動展示:可以在要展示訊息數量的介面註冊一個廣播,在上面的程式碼中發送訊息到這個廣播,也可以使用EventBus發送訊息等等BroadcastReceiver 做耗時操作會導致ANR,而且這裡面也沒辦法直接修改UI,在我們專案中,使用RxBus去通知UI更新,一般的話可以使用EventBus,樓上說的Sp中也可以,但這種並不會直接去修改UI,而是需要自己手動去刷新,如果使用MVP架構的話,直接可以在presenter中去調方法更新