2

我遇到了一个奇怪的服务问题。它可以在 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

PS 如果有任何意义,我会从 onStartCommand() 启动一个后台线程,并且该线程可以无限工作。

PPS 我尝试在单独的进程中启动服务,但没有成功。

4

1 回答 1

1

我的理解是,系统偶尔会删除/杀死它当时认为不必要的进程。但是,如果onStartCommand返回START_STICKY,它将在它被杀死后立即重新启动......我看不到杀死这些进程的意义,尽管我想它在极端情况下会有所帮助。模拟器行为可能会有所不同。

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

于 2012-07-11T13:15:14.080 回答