我發現AsyncTask和TimerTask在不同的API版本中行爲不同。跨API的TimerTask和AsyncTask實現
這是我的設置: TimerTask設置爲每隔一段時間觸發一次。有一個服務的方法在TimerTask觸發時被調用。該方法爲一些後臺處理實例化AsyncTask。請注意,AsyncTask不會觸及用戶界面。
上述所有適用於Android API 16和17罰款,但與標準的失敗,較低級別的API「無法創建處理程序... Looper.prepare()」的錯誤,如這裏解釋Start AsyncTask in TimerTask
我通過將AsyncTask更改爲Runnable來解決此問題,然後手動在服務的方法中啓動新線程。但是,我不知道自16版以來API已經發生了什麼變化? Looper.prepare()現在實際上是否在TimerTask線程中調用?如果是這樣,是否有一種簡單的方法可以在我的代碼中實現同樣的事情,以便我可以繼續使用TimerTask(Runnable解決方案在很多方面都不是最優的,因爲我可能決定稍後從AsyncTask更新UI)。
感謝,
Veljko
http://developer.android.com/reference/android/os/AsyncTask.html – Raghunandan 2013-03-25 12:08:39