Android 具有可扩展服务的库模块
Android library module with extendable service
我需要开发一个具有服务组件的 android 库。服务要求是:
- 作为启动服务工作(始终启动)
- 在需要时由警报服务启动和重新启动(库中的另一项服务)
- 随系统引导启动 (BOOT_COMPLETED)
- 提供一种订阅特定服务事件的方法(应该在服务上下文中执行,我的意思是也在后台执行)
该服务的目的是为将使用它的任何客户端(android 应用程序)提供订阅某些应在后台执行的事件的能力。由于扩展客户端即使在后台(即使客户端未启动)也应该收到通知的限制,我可以将其视为服务的扩展(派生服务在客户端应用程序的清单中重新配置)。
实现我的目标最合适的方法是什么?
基础服务应该如何与客户端扩展通信?
因此,第一个客户必须将此服务添加到他们的 AndroidManifest.xml
。然后客户端将根据您的需要从库中调用一些方法来启动您的服务或警报服务。
通信取决于您要从服务发送到客户端应用程序的数据。如果它只是一个通知,那么最好的方法是使用 BroadcastReceiver
。如果您在 AndroidManifest.xml
中注册接收器,即使应用程序未启动,它也会接收到意图。
如果您想发送大量对象或调用服务上的某些方法,您可以使用 ServiceConnection
和活页夹。
例如,即使客户端未启动,您也需要从您的服务接收 List<Model>
。您在 AndroidManifest.xml
中声明一个 BroadcastReceiver
,它将根据其意图过滤器接收一些意图。然后你通过 ServiceConnection
绑定到你的服务并传递一个回调对象。之后,您在服务中启动一个后台线程来加载数据。完成后,您调用回调方法,您的客户端应用程序将接收数据。
不确定我是否回答了你的问题,因为它有点抽象。
我需要开发一个具有服务组件的 android 库。服务要求是:
- 作为启动服务工作(始终启动)
- 在需要时由警报服务启动和重新启动(库中的另一项服务)
- 随系统引导启动 (BOOT_COMPLETED)
- 提供一种订阅特定服务事件的方法(应该在服务上下文中执行,我的意思是也在后台执行)
该服务的目的是为将使用它的任何客户端(android 应用程序)提供订阅某些应在后台执行的事件的能力。由于扩展客户端即使在后台(即使客户端未启动)也应该收到通知的限制,我可以将其视为服务的扩展(派生服务在客户端应用程序的清单中重新配置)。
实现我的目标最合适的方法是什么? 基础服务应该如何与客户端扩展通信?
因此,第一个客户必须将此服务添加到他们的 AndroidManifest.xml
。然后客户端将根据您的需要从库中调用一些方法来启动您的服务或警报服务。
通信取决于您要从服务发送到客户端应用程序的数据。如果它只是一个通知,那么最好的方法是使用 BroadcastReceiver
。如果您在 AndroidManifest.xml
中注册接收器,即使应用程序未启动,它也会接收到意图。
如果您想发送大量对象或调用服务上的某些方法,您可以使用 ServiceConnection
和活页夹。
例如,即使客户端未启动,您也需要从您的服务接收 List<Model>
。您在 AndroidManifest.xml
中声明一个 BroadcastReceiver
,它将根据其意图过滤器接收一些意图。然后你通过 ServiceConnection
绑定到你的服务并传递一个回调对象。之后,您在服务中启动一个后台线程来加载数据。完成后,您调用回调方法,您的客户端应用程序将接收数据。
不确定我是否回答了你的问题,因为它有点抽象。