gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 14:07:53 25 4
gpt4 key购买 nike

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

  • 作为启动服务工作(始终启动)
  • 在需要时由警报服务启动和重新启动(图书馆内的另一项服务)
  • 从系统引导开始(BOOT_COMPLETED)
  • 提供一种订阅特定服务事件的方法(应该在服务上下文中执行,我的意思是也在后台执行)

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

实现我的目标最合适的方法是什么?基础服务应该如何与客户端扩展通信?

最佳答案

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

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

如果您想发送大量对象或调用服务上的某些方法,您可以使用 ServiceConnection和 Binder 。

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

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

关于java - 具有可扩展服务的 Android 库模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31463832/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com