私のアプリでは、メインアクティビティのonCreate()メソッドで、ウェイクロックを作成しています。これにより、電話がスタンバイ状態になった場合や画面がオフになった場合でもCPUが実行され続けます。
また、onCreateメソッドでは、加速度計を使用するサービスを作成するつもりです。このサービスは、アプリが開いていて加速度計の値を監視している間、継続的に実行する必要があります(これはバッテリーには適していないことはわかっていますが、それを行うために必要です)。これが現時点での私のコードで、サービスは正常に開始されます。
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
PowerManager pm = (PowerManager) getSystemService(POWER_SERVICE);
PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "Howaya");
wl.acquire();
if (appStart == true)
{
Intent AccelService = new Intent(this, Accelerometer.class);
AccelService.putExtra("unreg", false);
startService(AccelService);
}
appStart = false;
}
マニフェストに次の権限が設定されています-
<uses-permission android:name="android.permission.WAKE_LOCK" />
私はさまざまなロックでこれを試しました-薄暗い画面と完全な明るさも役に立ちません。logcatの私の出力はここにあります-
F/PowerManager(15628): android.util.Log$TerribleFailure: WakeLock finalized while still held: Howaya
F/PowerManager(15628): at android.util.Log.wtf(Log.java:260)
F/PowerManager(15628): at android.util.Log.wtf(Log.java:239)
F/PowerManager(15628): at android.os.PowerManager$WakeLock.finalize(PowerManager.java:329)
F/PowerManager(15628): at dalvik.system.NativeStart.run(Native Method)
このリンクのグーグルスタンバイエラーページのように、部分的なウェイクロックが期待どおりに機能しないと言う人を見たことがありますが、これは昨年リリースされて閉じられたので、その場合はわかりませんが、誰かがここで助けてくれますか?その最後の点に関してもHTCの欲求があります、ありがとう。