gpt4 book ai didi

java - 如何在应用程序的生命周期中保持绑定(bind)服务运行?

转载 作者:行者123 更新时间:2023-12-01 17:20:32 25 4
gpt4 key购买 nike

我在 MainActivity.java 中启动并绑定(bind)到 Service,如下所示:

   @Override
protected void onStart() {
super.onStart();
Intent intent = new Intent(this, WebSocket.class);
bindService(intent, webSocket_connection, Context.BIND_AUTO_CREATE);
}

我在我的应用程序中根本不调用 startService(intent)

我的问题是,如何确保绑定(bind)的服务在我的应用程序的生命周期中保持运行?如何重新启动它,以防它被系统终止(如果主应用程序仍在运行)?

最佳答案

根据行为,Bound 服务生命周期是直到最后一个组件绑定(bind)到它调用取消绑定(bind)或销毁为止。多个组件可以同时绑定(bind)到服务,但是当所有组件都解除绑定(bind)时,服务就会被销毁。

因此,在您的情况下,您需要在应用程序生命周期期间运行服务。您可以在第一个 Activity 中绑定(bind)服务,即您的 Home Activity,然后在进一步的 Activity 打开时绑定(bind)(仅在需要时)。因此,当您的 APP 关闭时,最后一个 Activity 将关闭是 Home Activity ,它将取消绑定(bind)并且服务将停止,因为它是最后一个绑定(bind)的组件。

注意-> 确保在 Activity 中调用绑定(bind)和取消绑定(bind)正确的生命周期方法。例如 onCreate->onDestroy()onStart()->onStop().

关于java - 如何在应用程序的生命周期中保持绑定(bind)服务运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61300597/

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