我正在实施Parse推送通知。我有2个接收器。第一个将始终显示通知,第二个将接管通知,如果一个特定活动正在运行。一个在清单(优先级1)中注册,另一个是动态注册/未注册(优先级2)。我的问题是我无法通过调用
取消来自动态接收器的广播abortBroadcast()
它抛出异常
BroadcastReceiver trying to return result during a non-ordered broadcast
那么,有没有办法让广播订购或类似的东西? 我真的想在活动时处理活动中的数据。
答案 0 :(得分:1)
好的,经过2小时的搜索,终于解决了。这就是我做的,
首先,我创建了一个基础BroadcastReceiver
,它接收来自Parse的推送通知。然后,它会从接收到的意图中删除所有操作,并添加自定义操作,例如com.myclass.PUSH
然后我用了
context.sendOrderedBroadcast(intent, null);
使用我的自定义操作发送新订购的广播。
现在我将其他两个接收器(在manifest中定义的接收器和我在活动中定义的动态接收器)动作设置为com.myclass.PUSH
现在广播已经订购,我可以使用abortBroadcast()