0

我在後臺服務(Intent服務)期間出現錯誤。這是logcat的的一部分:Android - 索尼Xperia Z1 - 致命旋轉中止,傾銷線程

02-07 17:42:09.401:E/dalvikvm(27243):致命旋塗暫停,傾倒線程

02-07 17:42:09.421:電子/ dalvikvm(27243):threadid = 15:卡住threadid = 17,放棄

02-07 17:42:09.421:A/libc(27243):0x00006a6b處的致命信號16(SIGSTKFLT) 6),線程28821(IntentService [S]

在服務裏面,我調用一個asyncTask來做一些後臺工作(換句話說,沒有使用asyncTask,應用程序拋出異常),例如發送一個重的視頻分成1M部分。

這種情況很奇怪,因爲索尼Xperia Z1只有這個問題。我已經在Nexus7,GalaxyTab2中測試過,沒有任何問題。

任何想法?

在此先感謝您的時間!

Regards, rmuhamed。

+0

與我在索尼Xperia Z上的項目有同樣的問題,在Nexus等其他設備上運行良好......你解決了嗎? – erwin

+0

erwin,你好嗎?我發佈了一個適用於我的「答案」,你看過嗎?我希望有幫助 – rmuhamed

回答

0

我自己解決了。我不知道這是否是最好的解決方案,但現在工作正常。

顯然問題在於操作系統正在銷燬該服務,因爲它基於IntentServices *的優先級別,它的優先級較低。

我有一些自定義邏輯添加到onTaskRemoved的onDestroy方法在我IntenteService類。一方面,在這些方法中,我添加了一個標誌來控制服務是否被銷燬並調用AsyncTask.stop()(強制asynctask完成)。另一方面,在我的asynctask中,如果服務之前已經停止,我必須驗證該標誌以防止邏輯執行。

我覺得有些代碼是有用的。告訴我,如果你需要它。

我希望這是有幫助的。

相關問題