时间:2011-08-23 12:15:19

标签: android service broadcastreceiver

在我的应用程序中,我使用广播接收器来检测以前记录和注册的接近警报变化。但是当广播接收器收到接近警报时,我需要做我的应用程序所做的事情。当应用程序第一次打开时,我正在创建服务,并且我正在考虑使用该服务来执行该工作,当广播接收到来自BroadcastReceiver的调用时,即使应用程序被OS杀死,我希望我的应用程序正常运行。对于这种情况,最好的做法是什么,我是否走在正确的轨道上?

编辑:我也在使用

<intent-filter>
  <action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>

BOOT_COMPLETED意图过滤器,用于在用户启动设备时重新注册我的BroadcastReceiver。

2 个答案:

答案 0 :(得分:1)

是的,你走在正确的轨道上

在BootCompleted上你可以启动一个 服务于broadcastReceiver类的onReceive()方法。当时 andoid电话将启动它将播出意图。 切记永远不要在完整的应用程序中取消注册此广播

答案 1 :(得分:0)

我知道线程很旧但是:

  1. 如果您使用BOOT_COMPLETED过滤器意图,请不要忘记启动完成android.permission.RECEIVE_BOOT_COMPLETED的权限。

  2. 这取决于您的应用程序的逻辑但是如果您的逻辑需要启动永久后台服务,该服务在后台执行某些逻辑(侦听传感器数据等等),您可以启动服务和其他所需的初始化在您的Application类中。这将保证一旦调用了BroadcastReceiver的onReceive(即使在启动完成后),所有的初始化都将准备就绪,因为已经调用了应用程序onCreate。