今天在开发时遇到了一个问题,特做下笔记
问题:Android通知栏做下拉操作时,点击其中一条应用程序通知,但是应用程序没有任何响应!!
原因:
1、下拉通知栏实际对顶层的Activity或fragment的生命周期没有影响;
2、刚好对应的通知消息是传Intent到顶层Activity的,所以在顶层Activity的所有生命周期中都无法更新通知发送过来的Intent。因为Activity要触发生命周期事件,必须有一个额外的Activity加入才行,比如平时的Dialog遮挡等,其实都是有另一个Activity加入,从而触发了当前顶层Activity的生命周期事件,而下拉通知栏并没有生成一个Activity。所以如果通知栏的消息是传意图到非顶层Activity的,那么可以触发对应的操作。
解决方法:
1、可以使用系统提供的BroadcastReceiver发送广播,然后在顶层Activity中注册、接收及注销广播事件;
2、可以使用EventBus处理
网友评论