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

标签 android service

我遇到了一个奇怪的服务问题。它在 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,它将在它被杀死后立即重新启动……我看不出杀死这些进程的意义,尽管我想它可以在极端情况下提供帮助。模拟器行为可能会有所不同。

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

关于android - 服务在 galaxy nexus 上崩溃,但在模拟器上没有,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11432808/

相关文章:

Grails 无法将 session 范围的服务注入(inject) Controller

templates - 撰写文件Docker中的模板语法

c# - 如何打开服务属性对话框

android.support.design.widget.TabLayout 以编程方式选择选项卡

java - FTS3 | rowid 问题 |删除不起作用

java - 如何在 Harmony 应用程序开发中动态更改对话框中设置的动画组件的大小?

javascript - 将数组从服务传递到 Controller

java - 通过单击“添加”按钮生成编辑文本,并根据此 xml 按删除按钮删除编辑文本

android - recyclerview 下面的 TextViews 没有显示

angular - 服务不在模块之间共享