Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/179.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 广播接收器何时启用?_Android_Broadcastreceiver - Fatal编程技术网

Android 广播接收器何时启用?

Android 广播接收器何时启用?,android,broadcastreceiver,Android,Broadcastreceiver,如果我在我的应用程序清单中注册了一个BroadcastReceiver(例如收到网络更改的通知),它什么时候开始收到通知?在设备启动时?或者该应用程序需要手动启动吗?当您的设备完全启动时,它开始接收广播。但是,从Honeycomb(API级别12)开始,您需要至少启动一次应用程序,以使其能够开始收听广播 在蜂窝和更高版本中,当您安装应用程序时,框架将其标记为已停止的\u包,并且不包括用于收听的广播接收器。但一旦您启动应用程序一次,这样的标记就会被删除,您就可以开始了:) 另一种方法是,尝试将标志

如果我在我的应用程序清单中注册了一个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;它的值是内联编译时。