Android - 索尼Xperia Z1 - 致命的旋转暂停,倾销线程

时间:2014-02-10 12:45:03

标签: android android-intent android-asynctask android-service

我在后台服务(Intent服务)期间出错。这是logcat的一部分:

02-07 17:42:09.401:E / dalvikvm(27243):致命的旋转暂停,倾销线程

02-07 17:42:09.421:E / dalvikvm(27243):threadid = 15:卡在线程= 17,放弃

02-07 17:42:09.421:A / libc(27243):致命信号16(SIGSTKFLT)位于0x00006a6b(代码= -6),线程28821(IntentService [S]

在服务中,我调用asyncTask来执行一些后台工作(换句话说,不使用asyncTask,应用程序抛出异常),例如将重型视频分成1M部分。

这种情况很奇怪,因为索尼Xperia Z1只有这个问题。我已经在Nexus7,GalaxyTab2中测试过没有问题。

有什么想法吗?

提前感谢您的时间!

此致 rmuhamed。

1 个答案:

答案 0 :(得分:0)

我自己解决了。我不知道它是否是最佳解决方案,但现在工作正常。

显然问题是操作系统正在销毁服务,因为根据IntentServices *的优先级类别,它的优先级较低。

我必须在IntenteService类中的 onTaskRemoved onDestroy 方法中添加一些自定义逻辑。一方面,在这些方法中,我添加了一个标志来控制服务是否被销毁并调用AsyncTask.stop()(强制asynctask完成)。另一方面,在我的asynctask中,我必须验证此标志以防止在先前停止服务时执行逻辑。

我认为有些代码很有用。告诉我,如果你需要它。

我希望这很有帮助。