服务在galaxy nexus上崩溃,但模拟器没有



我在服务方面遇到了一个奇怪的问题。它在ICS模拟器上正确无误地工作。但当我在带有ICS 4.0.4的Galaxy Nexus上推出它时,我观察到该服务在没有任何堆栈竞争的情况下出现了奇怪的崩溃。以下是我得到的全部:

07-11 16:26:37.758: INFO/ActivityManager(136): Process com.test.service (pid 3899) has died.
07-11 16:26:37.758: WARN/ActivityManager(136): Scheduling restart of crashed service com.test.service/.MyService in 20000ms

我在谷歌上搜索了一下,但不知道。这可能与记忆压力有关?我该怎么办?

UPD

附言:如果有意义的话,我从onStartCommand()启动一个后台线程,这个线程可以无限工作。

附言:我试图在单独的过程中推出服务,但没有成功。

我的理解是,系统偶尔会删除/终止它当时认为不必要的进程。然而,如果onStartCommand返回START_STICKY,它将在被杀死后立即重新启动。。。我看不出扼杀这样的过程有什么意义,尽管我想在极端情况下它会有所帮助。Emulator的行为可能会有所不同。

假设您的服务没有实际崩溃(logcat中应该有某种堆栈跟踪),为了防止系统如此容易地杀死服务,必须将其作为前台服务启动。

最新更新