Android: запуск активности с намерением активирует WakeLock. Как отключить это поведение?
В Android-приложении я загружаю активность как намерение:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
startApp();
}
private void startApp() {
Intent i = new Intent(this, WebViewLoader.class);
startActivity(i);
}
}
С этим кодом запускается "WakeLock" - приложение больше не переходит в спящий режим. Я вижу, как WakeLock очищается с помощью команды console:
adb shell dump sys power
Dump:
Wake Locks: size=1
SCREEN_BRIGHT_WAKE_LOCK 'WindowManager' ON_AFTER_RELEASE (uid=1000, pid=386, ws=WorkSource{10085})
Suspend Blockers: size=4
PowerManagerService.WakeLocks: ref count=1
PowerManagerService.Display: ref count=1
PowerManagerService.Broadcasts: ref count=0
PowerManagerService.WirelessChargerDetector: ref count=0
Как я могу отключить этот WakeLock?
Если я раскомментирую строку "startActivity(i);" в приведенном выше примере кода WakeLock не предоставляется (ожидаемое поведение). Так или иначе, запуск Activty запускает также WakeLock. Кстати, у меня нет функции WakeLock в загруженной активности. По сути, это WebView-загрузчик с некоторыми асинхронными вызовами JavaScript...
2 ответа
Этот мне помог: /questions/42267602/derzhite-ekran-bodrstvuyuschim-na-protyazhenii-vsej-moej-deyatelnosti/42267620#42267620
Я случайно установил флаг в своем файле макета: android:keepScreenOn="true". Я установил его в false и режим сна возвращается!!
Удалите следующее разрешение из Manifest.xml
файл...
<uses-permission android:name="android.permission.WAKE_LOCK" />