gpt4 book ai didi

android - Android 中的本地服务绑定(bind) - 使用...还是不使用?

转载 作者:行者123 更新时间:2023-11-29 15:50:37 25 4
gpt4 key购买 nike

所以我正在使用本地服务,我想让 Activity 向服务发送一些命令。除了启动和停止之外,我还想要暂停或重新启动我的服务正在执行的 Activity 的命令(这些命令在这里并不是那么重要,只是作为示例。

我认为绑定(bind)到服务是执行此操作的正确方法,但我不确定两件事。

  1. android 文档说解除与服务的绑定(bind)会杀死它。如果我想让我的服务在后台运行怎么办...那么当我的 Activity onCreate()s 我想绑定(bind)到服务(以控制它/向它发送命令)和 onDestroy() 我想取消绑定(bind) Activity来自服务,但保持服务运行。

  2. 我无法理解有关 Android 开发的 Big Nerd Ranch 书中的这段摘录

This pattern looks exciting. It is the only place in Android that enables one Android component to directly talk to another. We do not recommend it, though. Since services are effectively singletons, using them this way provides no major benefits over just using a singleton instead.

它基本上是在告诉我 bind 是一个 api,它只是让事情变得有点太复杂而无法真正用于本地服务吗?

最佳答案

The android docs say that unbinding from a service will kill it.

更准确地说,当您调用 unbindService() 时,如果没有其他未完成的绑定(bind),并且服务上没有调用 startService() 以使其运行方式,服务将被销毁。

What if I want my service to run in the background... then when my Activity onCreate()s I want to bind to the Service (to control it/send it commands) and onDestroy() I'd like to unbind the Activity from the service, but keep the Service running.

然后您将不得不同时使用 startService()(以更好地控制服务的持续时间)和 bindService()。而且,如果您所做的只是发送命令,我会直接跳过 bindService() 并通过 startService() 发送命令。

I'm having trouble understanding this excerpt from the Big Nerd Ranch book on Android development

最后引用的一句话是……奇怪。

Is it essentially telling me that bind is an api that just makes things a little too complicated to really use for a Local Service?

这是对引用段落的合理解释。

就个人而言,我发现 body 各个部位的束缚都是一种痛苦,超过了本地服务的值(value)。 服务 很重要,它向操作系统表明您正在进行的后台工作值得让您的进程保持更长的时间。但我将在本地绑定(bind)上使用命令模式和事件总线。绑定(bind)本身是状态,需要针对配置更改进行管理的状态。保留的 fragment 使这比以前更容易,但它仍然在加剧。

绑定(bind)模式对于远程服务更为重要,其中客户端和服务位于不同的应用程序中。虽然这会引入一大堆新的和令人兴奋的问题,但 Android 中的 IPC 选项只有这么多,而远程服务提供的选项使用其他 IPC 选项很难甚至不可能实现。

关于android - Android 中的本地服务绑定(bind) - 使用...还是不使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30243182/

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