如果我在我的应用程序清单中注册了BroadcastReceiver(例如,要通知网络更改),它什么时候开始通知?在设备启动时?或者是否需要手动启动应用程序?
答案 0 :(得分:4)
当您的设备完全启动时,它会开始接收广播。但是,从Honeycomb(API Level 12)开始,您需要至少启动一次应用程序,以便启动收听广播。
在Honeycomb及以上版本中,当您安装应用程序时,框架会将其标记为 STOPPED_PACKAGE ,并且不包括用于侦听的广播接收器。但是一旦你启动你的应用程序一次,就会删除这样的标记,你可以去:)
作为替代方案,请尝试将标记Intent.FLAG_INCLUDE_STOPPED_PACKAGES
设置为广播意图,以便包含已停止的那些包。
例如:
intent.setFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES);