强制停止会使app的接收器不被呼叫?

强制停止会使app的接收器不被呼叫?

问题描述:

我有一个以XML格式声明的服务,对PACKAGE_ADDED广播意图做出响应。 它工作正常,但我刚刚发现,如果我强制停止应用程序,接收器将不会再收到任何东西。它没有被调用。强制停止会使app的接收器不被呼叫?

这是正常的吗?我能做什么?

我需要确保它始终响应。

+0

嗯,我面临同样的问题。经过多次调试,最后我意识到如果我使用CleanMaster来杀死应用程序,我的WifiEnabledReceiver(用于跟踪Wifi状态)将永远不会收到任何东西。 – anticafe

+0

如果活动不在前台,请尝试使用服务,并安排警报再次运行服务,以读取接收方。 –

如果您的接收器是由您的服务动态注册的,那么当他被杀时接收器也是如此。 但是,如果你声明你的接收器在XML中,这应该工作。 (通常的引导接收器)

+0

在android 3.1+中,此功能不再可用。现在在Android 3.1+中,当应用程序强制停止时,即使应用程序在清单文件中注册,应用程序也不会收到广播接收器。 –

从Android版本3.1开始,应用程序无法接收广播意图,直到手动凝视一次。 在第一次启动之前,启动器将该应用程序视为“已停止”。 (http://developer.android.com/about/versions/android-3.1.html在“停止的应用程序启动控件”下)。

如果您手动强制停止应用程序,该标志将被重新设置,您需要手动重新启动以允许它再次接收事件。

尝试在你的意图添加FLAG_INCLUDE_STOPPED_PACKAGES

this FLAG

+0

请提供答案。 – Sachith

+0

谢谢你编辑它 – Kodomo