gpt4 book ai didi

java - 尽管很忙,但我的后台服务被杀死并等待了很长时间才重新启动

转载 作者:行者123 更新时间:2023-11-29 08:55:03 27 4
gpt4 key购买 nike

有许多线程具有类似的问题和修复建议。我已经尝试了所有方法,除了将服务置于前台外,没有一个对我的情况有效,到目前为止我不想这样做。

我无法对现有线程发表评论,因为我没有足够的声誉并且我想提问,所以无法回答。这是提出我的问题并寻求一些专家的意见和建议的唯一选择。

讨论过类似问题的现有线程,

Time taken for Android Service to restart after being forcibly killed

Background Service getting killed in android

Android: Scheduling restart of crashed service with HUGE delay?

我的问题:

我有一个在启动时启动的服务(监听 Intent BOOT_COMPLETED)我启动了一个线程,该线程通过套接字与其他服务进行交互,并在服务被终止时中断 (onDestroy)

在手机上使用 Wifi,我的服务从未被 android 杀死,并且按预期工作。

如果我只切换到 3G (At&T SIM),我的服务大约会被终止。 1800 秒(30 分钟) 后,计划在大约3600 秒(1 小时)。服务启动的线程一直在执行 SQLLite 调用并与其他服务交互。

Android 认为我的服务已经空闲了 1800 多秒,并且会在很长的重启时间后杀死它。

问题:

  1. 我需要做什么来告诉 Android ActivityManager 我的服务正在使用它旋转的线程工作,所以它不应该被杀死。仅在 3G 上发生。

  2. 如何将计时器缩短到 20 秒以下。 1小时太长了。我确实使用 AsyncTask 旋转其他线程,该线程循环永远 hibernate 1 秒,但我的服务仍然被终止。

  3. Android 行为在使用 3G 和 Wifi 时有何变化来确定要终止哪个服务?

最佳答案

我发现android不支持长时间运行的后台服务。因此,当网络带宽受到更多限制时,我需要与其他服务保持通信的服务将被杀死,尤其是在 3G/4G 上。

我切换回前台模式,现在工作正常。我仍然想知道是否有办法避免 3G/4G 上的前台模式。

关于java - 尽管很忙,但我的后台服务被杀死并等待了很长时间才重新启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20710062/

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