用的是小米推送。
然后我在集成了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中去调方法更新