2013-12-20 14 views
2

有很多线程都有类似的问题和建议要解决。我已经尝试过所有的方法,除了将服务置于前台之外,没有其他方法适用于我的情况,这是我迄今不想做的。尽管我很忙,但我的后台服务被终止并重启了很长时间的等待

我无法发表评论到现有的主题,因为我没有足够的声誉,我想问,所以不能回答。这是提出我的问题并寻找专家意见和建议的唯一选择。

类似问题的现有线索的讨论,

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?

我的问题:

我有一个服务是在引导时启动(听取意见nt BOOT_COMPLETED) 我启动了一个线程,该线程通过套接字与其他服务进行交互,并在服务被终止时被中断(onDestroy)

在手机上使用Wifi,我的服务永远不会被android杀死,它按预期工作。

如果我只切换到3G(在& T SIM),我的服务被杀死约。之后1800秒(30分钟)并计划在约10秒内重新启动。 3600秒(1小时)。所有这段时间,服务启动的线程正在执行SQLLite调用并与此其他服务进行交互。

Android认为我的服务已被闲置超过1800+秒,并且会在很长的重启时间内终止它。

问题:

  1. 什么我需要做的,告诉的Android ActivityManager,我的服务使用一个线程纺它做的工作,所以它不应该被杀死。仅适用于3G。

  2. 如何将计时器减少到20秒以下。 1小时太长了。 我没有使用AsyncTask来旋转其他线程,永久睡眠1秒,但仍然我的服务被杀死。

  3. 当使用3G与Wifi来确定要杀死哪个服务时,Android的行为如何改变?

回答

0

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

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

相关问题