我注意到,每当我通过长按手机的后退按钮手动杀死我的应用程序时,我的广播接收器就会停止工作.每次用户挂断电话时,接收方负责显示通知,并且在manifest.xml中注册了该通知.
这是正常/预期的行为吗?我认为接收器应该继续工作,即使用户决定杀死我的应用程序……有没有办法防止这种情况?
谢谢.
编辑
这是接收器的清单条目:
<receiver android:name=".BroadcastReceivers.CallReceiver" android:enabled="true"> <intent-filter> <action android:name="android.intent.action.NEW_OUTGOING_CALL" /> <action android:name="android.intent.action.PHONE_STATE" /> </intent-filter> </receiver>
解决方法
这个星球上有大约70亿人.只有你知道“杀戮”是什么意思.
但是,您所描述的症状与“强制停止”一致.用户通常会通过转到“设置”,在已安装的应用列表中找到您的应用以及点击应用的“强制停止”按钮来强制停止应用.有一些设备和固件构建使“强制停止”比这更容易访问 – 这些设备和固件版本是由流口水的白痴恕我直言写的.
如果您的应用程序被强制停止,您的代码将永远不会再运行,直到某些内容使用显式Intent启动您的某个组件.通常,用户通过点击主屏幕启动器中的应用程序图标来执行此操作.在用户执行此操作之前,您的BroadcastReceiver将无法正常工作,并且您无法对其进行任何操作.
而不是使用一些设备上的功能来“杀死”你的应用程序,尝试通过DDMS终止其进程.如果您的应用程序继续在这种情况下工作,那么您选择在执行“强制停止”之前“杀死”您的应用程序.仅仅因为内存不足而终止您的进程不应该阻止您接收未来的广播.