繁体   English   中英

具有可扩展服务的Android库模块

[英]Android library module with extendable service

我需要开发一个具有服务组件的android库。 服务要求是:

  • 作为启动服务(始终启动)
  • 必要时由警报服务启动并重新启动(库中的其他服务)
  • 从系统启动开始(BOOT_COMPLETED)
  • 提供订阅某些服务事件的方式(应该在服务的上下文中执行,我的意思也在后台)

该服务的目的是为任何客户端(Android应用程序)提供订阅某些应该在后台执行的事件的能力。 相当于扩展客户端即使在后台也应该收到通知的限制(即使客户端未启动)我可以将其视为服务的扩展(在客户端应用程序的Manifest上重新配置的派生服务)。

实现目标的最恰当方法是什么? 基本服务应该如何与客户端扩展进行通信?

因此,第一个客户端必须将此服务添加到他们的AndroidManifest.xml 然后,客户端将根据您的需要从库中调用一些将启动服务或警报服务的方法。

通信取决于您要从服务发送到客户端应用程序的数据。 如果它只是一个通知,那么最好的方法是使用BroadcastReceiver 如果您在AndroidManifest.xml注册接收器,即使应用程序未启动,它也会收到意图。

如果要发送大量对象或在服务上调用某些方法,可以使用ServiceConnection和binder。

例如,即使客户端未启动,您也需要客户端从您的服务接收List<Model> 您在AndroidManifest.xml声明了一个BroadcastReceiver ,它将根据其intent过滤器接收一些intent。 然后通过ServiceConnection绑定到您的服务并传递回调对象。 之后,在服务中启动后台线程以加载数据。 完成后,您将调用回调方法,您的客户端应用程序将接收数据。

不确定我是否回答了你的问题,因为它有点抽象。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM