Android Wake Lock 是一種允許應用在后臺保持設備喚醒狀態的功能
<uses-permission android:name="android.permission.WAKE_LOCK" />
import android.app.Activity;
import android.os.Bundle;
import android.os.PowerManager;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
PowerManager powerManager = (PowerManager) getSystemService(POWER_SERVICE);
WakeLock wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "MyWakeLock");
wakeLock.acquire();
}
}
在這個例子中,我們首先獲取 PowerManager 服務,然后使用 newWakeLock()
方法創建一個新的 WakeLock 對象。第一個參數是 WakeLock 類型,這里我們使用 PowerManager.PARTIAL_WAKE_LOCK
以保持設備的 CPU 喚醒狀態。第二個參數是一個字符串標識符,用于識別 WakeLock。
接下來,我們調用 wakeLock.acquire()
方法來請求 Wake Lock。這將阻止設備進入睡眠狀態,直到 Wake Lock 被釋放。
wakeLock.release()
方法來釋放它。例如,您可以在 Activity 的 onPause 或 onDestroy 方法中釋放 Wake Lock:@Override
protected void onPause() {
super.onPause();
if (wakeLock != null && wakeLock.isHeld()) {
wakeLock.release();
}
}
請注意,這個例子僅用于演示目的。在實際應用中,您可能需要根據應用的需求和場景更精細地控制 Wake Lock 的獲取和釋放。