サービスにウェイクロックとwifiロックを実装しようとしています。このような私のシナリオの詳細:サービスでのWakelockの実装。開始時に取得し、サービスが破壊されたときに解放します。プロジェクトのバッテリー消費量を監視したいのですが、このアプローチは適切ではないことは理解しています。しかし、私の電話スクリーンがオフのとき、それは機能していません。オプションを有効にしました:スリープ中はWifiをオンのままにします。画面がオフになるとすぐにサービスが停止します。スニペットを使用しています:
PowerManager powerManager = (PowerManager)getSystemService(Context.POWER_SERVICE);
wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "My Lock");
if(!wakeLock.isHeld())
{
wakeLock.acquire();
}
Log.d(TAG,"Acquired Wake lock successfully");
wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
wifiLock = wifiManager.createWifiLock(WifiManager.WIFI_MODE_FULL_HIGH_PERF , "WiFi LockTag");
if(!wifiLock.isHeld())
{
wifiLock.acquire();
}
Log.d(TAG,"Acquired Wifi lock successfully");
//解放する
try{
wifiLock.release();
}catch(Exception e){
e.printStackTrace();
Log.d(TAG,"Exception while releasing WakeLock :: Can be ignoredd");
}
なぜこれが起こっているのかについて何か考えはありますか?前もって感謝します!