Android 广播接收器何时启用?
如果我在我的应用程序清单中注册了一个BroadcastReceiver(例如收到网络更改的通知),它什么时候开始收到通知?在设备启动时?或者该应用程序需要手动启动吗?当您的设备完全启动时,它开始接收广播。但是,从Honeycomb(API级别12)开始,您需要至少启动一次应用程序,以使其能够开始收听广播 在蜂窝和更高版本中,当您安装应用程序时,框架将其标记为已停止的\u包,并且不包括用于收听的广播接收器。但一旦您启动应用程序一次,这样的标记就会被删除,您就可以开始了:) 另一种方法是,尝试将标志Android 广播接收器何时启用?,android,broadcastreceiver,Android,Broadcastreceiver,如果我在我的应用程序清单中注册了一个BroadcastReceiver(例如收到网络更改的通知),它什么时候开始收到通知?在设备启动时?或者该应用程序需要手动启动吗?当您的设备完全启动时,它开始接收广播。但是,从Honeycomb(API级别12)开始,您需要至少启动一次应用程序,以使其能够开始收听广播 在蜂窝和更高版本中,当您安装应用程序时,框架将其标记为已停止的\u包,并且不包括用于收听的广播接收器。但一旦您启动应用程序一次,这样的标记就会被删除,您就可以开始了:) 另一种方法是,尝试将标志
Intent.flag\u INCLUDE\u STOPPED\u PACKAGES
设置为您的广播意图,以便也包括那些已停止的包
例如:
intent.setFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES);
只是想明确一点:如果我启动应用程序一次,然后重新启动设备,广播接收器将在启动时启用,对吗?您可以始终使用Intent.FLAG\u INCLUDE\u STOPPED\u包(无论min sdk如何),因为它是静态的final;它的值是内联编译时。