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" /> 
Другие вопросы по тегам