我开发了一个使用广播接收器的应用程序,我需要始终唤醒我的应用程序,所以我使用了wakelock。
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "My Tag");
wl.acquire();
问题
1.如果我总是醒来,我的电池就会被耗尽。
2.如果我打电话 w1.acquier()
,是需要释放w1(ie w1.release)
我不明白你的第一个问题是什么。我想这是一个事实,如果你想继续唤醒你的应用程序?
如果你想实现的是保持屏幕不变暗,你可以试试这个代码。
//This is to keep the screen not dimming down.
Window.AddFlags(WindowManagerFlags.KeepScreenOn);
唤醒锁会让你的应用程序在屏幕关闭的情况下也能保持cpu运行 所以会严重消耗你的电池。当你不再需要应用程序继续在后台运行时,你要调用释放你的唤醒锁(例如不再等待任何回调)。