В моем приложении в методе основной активности onCreate () я создаю блокировку от пробуждения, чтобы процессор продолжал работать, если телефон переходит в режим ожидания / выключается экран.
Также в методе 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)
Я видел людей, которые говорили, что частичные wakelocks работают не так, как должны, например, по этой ссылке Страница ошибки ожидания Google но это было выпущено и закрыто в прошлом году, так что я не знаю, случай, может кто-нибудь помочь здесь, пожалуйста? У меня есть HTC Desire, что касается последнего пункта, спасибо.