Android Service和Activity以及Notification之间的通信
推荐于2016-03-07
Activity在onCreate中注册一个广播,用于更新消息,onStop时取消注册。
加个标志位,在Activity创建和销毁的时候改变,在service中根据判断发送通知。
第二点不是很懂,还请详细点!
比如说你定义了一个全局变量bool SEND_NOTIFICATION=false,activity销毁之后,将SEND_NOTIFICATION=true。这样你在service中,如果SEND_NOTIFICATION=true就发送NOTIFICATION。这是一个方法。
你也可以注册两个BroadcastReceiver,接收同一个action,其实就是有序广播。一个在ActivityonCreate时注册,activity onDestory(或者onStop时)取消注册,这个广播用来更新界面消息,优先较高,在onReceive中更新界面后abortBroadcast;然后再注册一个发送Notification的广播,这个广播优先级较低;然后就可以用Context.sendOrderedBroadcast来发送action的广播。这样,如果你的界面在现实,就会调用优先级高的刷新消息,然后abort掉。如果你的界面不再显示了,就会调用优先级低的发送notification。
2023-05-10 广告