gpt4 book ai didi

android - 应用程序销毁时停止服务

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:36:44 25 4
gpt4 key购买 nike

我现在很困惑,关于运行和停止的服务概念:

我想做什么:

  • 在应用程序一开始就启动位置服务。

  • 不断获取位置更新并将它们存储到共享偏好

  • 停止onDestroy of Application 范围内的服务!

到目前为止,我已经搜索和研究了我们只能用服务做以下事情(如果我错了请纠正我):

  • 通过将服务绑定(bind)到相关的 Activity/fragment/ View 来自动停止服务,当所有这些都销毁服务自动解除绑定(bind)时,我们可以在解除绑定(bind)时调用stopself方法

  • 在 onStartCommand 中返回 START_NOT_STICKY 告诉 OS,不要重新创建它,并创建 intent 本地服务,完成一些工作后它会自行销毁。

  • 手动停止服务,通过在某种静态范围内声明它的 Intent 并在 Application 类的 onActivityDestroyed 上停止服务 [我不确定会发生什么? ,也许服务会在每次任何 Activity 被销毁时销毁?或者只有当整个应用程序被销毁时它才会被销毁?]

无论哪种方式,我都有些困惑和失败,我已经尝试使用给定的详细信息调整我的 Location service 2 天

最佳答案

如果您使用 START_NOT_STICKY 启动您的服务,那么一旦您的整个应用程序从后台关闭(即您从主屏幕清除了您的应用程序),您的应用程序将终止您的服务。

这里 START_NOT_STICKY 声明您不需要重新创建服务以防它被杀死。

如果不是这种情况,那么您必须自己手动杀死它。

喜欢

Intent lintent = new Intent(context, LocationService.class);
context.stopService(lintent);

您可以在您的应用程序终止时使用此代码。

就是这样。你可以接受这个。

关于android - 应用程序销毁时停止服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40677733/

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