在什麼特定情況下會發生這樣的超時?我安排一個警報來定期啓動一個服務,所以我創建了一個PendingIntent來定位服務(通過調用PendingIntent.getService(......)),並將它傳遞給AlarmManager setRepeating(..... ) 方法。報警類型是RTC_WAKEUP。服務正在死亡,在日誌中看到「ActivityManager:超時執行服務......」。原因?
正如目前實現的那樣,服務不會產生一個單獨的線程來完成它的工作,在onStart()中完成所有工作。
該服務執行一些數據庫查詢,並且我懷疑我現在經常在日誌中看到「超時執行服務...」消息的原因,因爲我的服務死掉了,這些查詢需要更長時間DB增大。
但是,特別是會導致執行超時。
- 是不是在做main線程的工作?
所以,從產卵在onStart一個單獨的線程(),允許在onStart()來及時返回,而DB查詢等方式對單獨的線程運行將完全消除此問題?還是有什麼我失蹤?
我使用AsyncTask來執行數據庫操作... – 2013-07-25 10:22:09