我有一個服務,產生一個下載線程,有時會下載大文件。我意識到只要手機進入睡眠狀態,下載線程就會顯着減慢,然後停止。PARTIAL_WAKE_LOCK vs SCREEN_DIM_WAKE_LOCK在下載線程
明顯的補救措施,一個喚醒鎖。所以我會認爲可以獲得partial_wake_lock,只是爲了讓CPU處理下載。這雖然不起作用,但同樣的行爲,下載速度減慢,然後在屏幕關閉時停止。
然後我嘗試了一個screen_dim_wake_lock。這一次,屏幕保持(變暗),並且下載保持全速運行,直到完成,wakelock釋放,然後睡眠。
我的問題是,爲什麼我不能讓我的線程保持partial_wake_lock的狀態,就像在screen_dim_wake_lock中一樣?有沒有關於這兩個差異的無證行爲?是否因爲我沒有在UI線程上運行?
編輯:
我添加了一個wifilock。 wifi不睡覺,但我的線程仍然死亡。如果其他進程喚醒系統,則下載將以正常速度繼續,然後再次減速。如果我喚醒手機,它將以正常速度繼續,而不會在屏幕熄滅時再次減速。看起來線程正在被系統推入後臺。我想知道我能否防止這種情況發生。
這種隨時隨地獲取?除非我使用SCREEN_DIM_WAKE_LOCK,否則我遇到的問題與網絡有關。部分喚醒鎖只是不夠的 - 當與WifiLock結合... – barkside 2013-03-21 09:28:35