广播接收者是否被视为服务?

时间:2012-02-19 07:35:06

标签: android service broadcastreceiver

我正在挖掘这个论坛,但找不到我的问题的答案....

1,我通过扩展广播接收器开发了短信应用程序,一切运行良好,问题是手机休眠一段时间后 - 应用程序不再正常工作。那么broadcastreceiver被认为是服务吗? (在X分钟闲置X分钟后,它将被Android杀死)....因为我没有“START_REDELIVER_INTENT”,就像我在服务中一样....而且我读了一些帖子,说要使用AlarmManaget - 但我不明白为什么。 (示例帖子不是关于接收短信虽然......是关于日历等...)

底线 - 我该如何解决这个问题?如果我需要在android杀死之后使用服务来运行它 - 我不明白如何将我的broadcastreceiver转换为服务...(因为它是唯一需要运行的东西......其他一切都是只是设置和偏好....)

2,例如,当我安装GOSMS时,android问我 - 从现在开始我将使用哪个应用程序作为我的默认SMS程序,我需要编写什么才能实现这种通知终端用户 ?现在我的应用程序只接收短信通知...不发送任何内容...

提前致谢....

1 个答案:

答案 0 :(得分:2)

  

广播接收者认为是服务吗?

不,这就是为什么它被称为BroadcastReceiver而不是Service

请参阅Application Fundamentals以正确理解Android应用程序的各个关键组件。

此外,如果您在BroadcastReceiver's中正确注册了<intent-filter> AndroidManifest.xml,那么它将被“唤醒”以处理Intents,尽管正如Jens所提到的那样可能需要您获得某种WakeLock(并在完成任务期间/之后正确获取/处理/释放各种资源)。