我正在使用互联网电话app。在我的应用程序中,当app收到带有某些特定键的FCM数据消息时,我使用BroadcastReceiver
来调用呼叫屏幕。通常工作正常,但如果我从最近的应用程序列表中刷出我的应用程序它无法正常工作。看起来我的BroadcastReceiver
在刷卡后停止工作,因为所有FCM服务仍然存在并且它也接收FCM消息并且也在logcat中显示。
我正在用java代码注册我的广播接收器(清单中不)。
我使用服务类来注册广播接收器,并且还覆盖onTaskRemoved()
并使用AlarmManager
来保持服务运行,但它也不起作用。
为什么BroadcastReceiver
不会被解雇以及如何解决问题?
答案 0 :(得分:1)
我在java代码中注册我的广播接收器(不在清单中)。
这是导致问题的原因。当用户从最近列表中删除您的应用时,您的应用流程将被销毁。因此,您的BroadcastReceiver
也正在被销毁。
在BroadcastReceiver
注册AndroidManifest
,无论您的应用是否有正在运行的流程,都会调用onReceive()
。