3

如果我在我的应用程序清单中注册了一个 BroadcastReceiver(例如,要收到网络更改的通知),它什么时候开始收到通知?在设备启动时?还是需要手动启动应用程序?

4

1 回答 1

4

当您的设备完全启动时,它开始接收广播。但是,从 Honeycomb(API 级别 12)开始,您需要至少启动一次应用程序以使其能够开始收听广播。

在 Honeycomb 及更高版本中,当您安装应用程序时,框架将其标记为STOPPED_PACKAGE并且不包括其用于侦听的广播接收器。但是一旦你启动你的应用程序,这样的标记就会被删除,你就可以开始了:)

作为替代方案,尝试将标志设置Intent.FLAG_INCLUDE_STOPPED_PACKAGES为您的广播意图,以便也包含那些已停止的包。

例如:

intent.setFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES);
于 2012-08-29T14:47:49.500 回答