我有識別Android上的TimerTask一個問題,讓我發瘋了(我相信)的麻煩,的Android TimerTask的不總是叫(電話沒有被調試時,大多不叫)
的情形是:在撥打電話後,我使用PhoneStateListener啓動計時器,並在某個通話時間後再現聲音。
一切都很完美,但只要我不在調試模式(或者只是將手機插入電腦),聲音並不總是響,這些時候大多數時候聽起來並不順利。
我最大的問題是我無法清楚地識別問題,因爲這隻發生在拔下手機並且我無法讀取日誌時發生。我只能重現這個問題一次(在調用之後沒有聲音)並閱讀關於它的日誌,我意識到:onCallStateChanged被調用,Timer正常,但TimerTask從未被調用(或調度)。
因此,在閱讀了一些問題之後,我使用了Handler而不是Timer。但我有完全相同的問題。事實上,使用Handler這個問題通過簡單地插入和拔出手機就可以更容易地重現(使用Timer可以更難以重現無聲問題)。
我做錯了什麼,或者我需要執行其他的事情嗎?
任何意見可以理解, 在此先感謝
編輯
顯然,這種情況是因爲手機進入,一旦呼叫開始睡覺的處理程序。然而,使用wake_lock並不能防止這種情況發生,當手機處於睡眠狀態時,是否還有其他更改來運行線程?