android – 当我杀死我的应用程序时,BroadcastReceiver无法正常工作

我注意到,每当我通过长按手机的后退按钮手动杀死我的应用程序时,我的广播接收器就会停止工作.每次用户挂断电话时,接收方负责显示通知,并且在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终止其进程.如果您的应用程序继续在这种情况下工作,那么您选择在执行“强制停止”之前“杀死”您的应用程序.仅仅因为内存不足而终止您的进程不应该阻止您接收未来的广播.

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...