Fragment中有一個耗時的任務(一個線程)。它工作正常。但是,當我關閉屏幕時,我發現CPU無法工作,因此任務無法正常工作。如何在關閉屏幕時保持CPU運行?
我在Activity中使用PowerManager
,但是也沒有工作Fragment。 另外補充<uses-permission android:name="android.permission.WAKE_LOCK" />
@Override
protected void onResume() {
super.onResume();
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "CPUKeepRunning");
wakeLock.acquire();
}
@Override
protected void onDestroy() {
super.onDestroy();
if (wakeLock != null && wakeLock.isHeld()) {
wakeLock.release();
wakeLock = null;
}
}
避免使用在片段或活性長時間運行的操作。嘗試將您的線程替換爲服務,並在開始操作之前獲取wakeLock,並在結束長時間運行後釋放wright – ant
爲什麼服務不線程? – zys
你可以使用線程內服務。服務創建執行長時間運行的操作,並儘量減少在活動或片段中使用長時間運行的線程時可能發生的各種麻煩。你可以在這裏閱讀很多關於服務的內容http://developer.android.com/guide/components/services.html – ant