0

我在创建允许在不同时间添加/删除多个侦听器的 NON-IPC 服务时遇到了一些问题,例如,我希望能够随时联系该服务并“订阅”其事件,或“取消订阅”它。该服务每隔一段时间就会唤醒一次,并向所有订阅的侦听器发送一个事件。

我一直在查看 stackoverflow 示例、谷歌搜索等,特别是我在这里发现了类似的东西: android restful api

在该示例中,建议使用 ResultReceiver 作为服务的回调。但是在这种方法中,这是否意味着服务只能通知作为第一个意图的一部分发送给它的侦听器(即我不能随时添加/删除侦听器)?

此外,在该示例中,如果活动因某种原因被操作系统破坏,但服务仍然具有对侦听器的引用并尝试调用它,会发生什么情况?侦听器将尝试对不再存在的活动执行一些操作,对吗?

也许我错过了一些东西......如果可能的话,我会很感激一些输入......

肿瘤坏死因子

4

1 回答 1

1

首先,“睡眠”服务在 Android 中是反模式的。如果您需要定期执行某些操作,请使用 AlarmManager 启动您的服务。其次,服务可以随时重新启动,因此您不能依赖“订阅”来保留对其他组件(主要是活动)的引用。如果您需要向多个活动发送通知,请使用广播接收器。活动可以静态注册(使用 AndroidManifest.xml),也可以动态注册(使用代码)。

于 2012-06-21T06:35:05.873 回答