2014-06-05 29 views
0

好吧,这个主题有很多线程,但都是在android 3.1发布之前。 现在,直到用户手动启动应用程序,即广播接收器工作时,广播接收器才会工作,应用程序应处于运行状态而不是停止状态。我现在有一些疑问,特别是BOOT_COMPLETED接收器。Android版本中BroadCast Receiver大于2.3

为什么他们仍然想要BOOT_COMPLETED并且不会让应用程序使用它?我的意思是,这似乎没有意义。当系统启动时,应用程序处于停止状态,如果我没有错,任何应用程序都不会收到此事件。

而且开发者页面我读这上:

“平台定义了两种新的意图的标志,让发件人指定意向是否应该被允许在停止的应用程序,以激活组件

1:FLAG_INCLUDE_STOPPED_PACKAGES — Include intent filters of stopped applications in the list of potential targets to resolve against. 

2:FLAG_EXCLUDE_STOPPED_PACKAGES — Exclude intent filters of stopped applications from the list of potential targets" 

当我的应用程序处于停止状态时,我是否还可以接收广播?我怎样才能在manifest.xml中注册这些接收器?我知道这些标志被添加到代码中,但是我可以在manifest.xml?

回答

1

当且仅当用户从未手动启动应用程序时,应用程序才处于停止状态。用户已经启动应用程序至少一次,该应用程序可以在启动时注册接收BOOT_COMPLETE消息。

+0

你的意思是一旦应用程序被用户启动,BOOT_COMPLETE将被注册?并会听到这个事件,即使应用程序已关闭? –

+0

是的。一旦由用户启动,该应用不再处于“已停止”状态。即使Android杀死它,它也不会停止 - 它只是不能正常运行。这就是为什么几十个应用程序使用BOOT_COMPLETE。 –

+0

但其他接收器呢?我可以使用他们,当应用程序停止购买使用我提到的标志?? –

相关问题