BroadcastReceivers是否需要成为独立于UI(活动)的自己的进程?

时间:2013-04-25 02:36:48

标签: android broadcastreceiver repeatingalarm

所以我正在开发一个应用程序,它使用AlarmManager来广播我的接收器执行简单任务并快速完成的意图。我希望我的接收器每隔几分钟运行一次,所以我使用setRepeating来确保这一点。我不想担心我的应用程序的主要活动在警报触发时运行或可见。为了让我的接收器与主活动分开运行,我是否需要在清单中向接收器添加android:process=":remote"?或者他们本来就已经分开了?两者不需要沟通。我正在尽力杀死活动而不取消任何警报,接收器似乎现在正常运行,但我想知道它是否会继续工作几小时或几天。

2 个答案:

答案 0 :(得分:1)

是的,它们是分开的。无需使用该属性。

顺便问一下,你在BroadcastReceiver上做了多少工作?通常情况下,您无法在BroadcastReceiver内部做很多事情,您可以使用它来触发其他事情。

另外,我想知道你是怎么做的:

  

“我正在尽力杀死这项活动......”

我想知道你试图通过试图杀死活动试图解决什么问题?

答案 1 :(得分:0)

对你当前的问题 - 肯定不是 - 它将是一个性能杀手,无论如何都是不需要的。

对你的设计 - 有缺陷。你应该:

  1. 注册一个警报(也要注意在启动时重新注册) - 有关注册警报的代码,请参阅wakeLock does not wait for network connectivity
  2. 当AlarmaManager将您的接收器唤醒委托给WakefulIntentService时。当设备处于睡眠状态时,无法保证目标服务运行(请参阅Android deep sleep and wake locks)。
  3. 另见: