В моем приложении в методе 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;
}
У меня есть следующие разрешения, установленные в моем манифесте -
Я пробовал это с разными блокировками - тусклый экран и полная яркость тоже безрезультатно. Мой вывод о 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, спасибо.