gpt4 book ai didi

android - 启动和绑定(bind)的服务的生命周期?

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:13:27 32 4
gpt4 key购买 nike

我对服务生命周期感到困惑。
我有很多问题如下:

  1. 如果我的应用多次调用 startService() 到一个服务,是否会有多个服务同时运行?还是只有一个?

  2. 首先,如果我多次调用 bindService() 到我应用中的服务,我的应用会发生什么情况?

  3. 假设我有一个已通过 startService() 启动的服务,然后我绑定(bind)它以指示它做某事。在这种情况下,如果我指示(通过此 Binder 接口(interface))服务执行其 stopSelf() 方法,正在运行的服务会立即停止吗?

  4. 再次假设我有一个只能通过 bindService() 启动的服务,并且 onUnbind 被覆盖以返回 true,在这种情况下,我应该显式调用 stopSelf 方法来关闭服务吗?

最佳答案

  1. Android 设备上只存在一个服务实例。启动的服务只会启动一次,其他启动调用将导致重复调用 onStartCommand,但不会启动同一服务的新实例。

  2. 如果您通过绑定(bind)来启动绑定(bind)服务,并且这是第一次使用该服务,则会创建一个新实例并调用 onBind 方法。

  3. 是的。但是,服务启动的线程和服务注册的监听器将被泄露。您应该在 onDestroy 方法上处理这些资源。

  4. 无需调用 stop self。当最后一个用户与服务解除绑定(bind)时,服务自动销毁。

关于android - 启动和绑定(bind)的服务的生命周期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5243562/

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