Задать вопрос
@Kreatifchk
Программист любитель, 25 лет, предпочитаю java

Не работает Wake lock?

Не работает WakeLock на андроиде. Имеется приложение - небольшшой сервер на сокетах. Все работает до выключения экрана, после, секунд через 30 сервер становится недоступен. В интернете узнал, что для того чтоб процессор работал даже после выключения экрана надо использовать WakeLock, но у меня почему-то этот способ не работает. Я делал так:
PowerManager pm = (PowerManager) this.getSystemService(this.POWER_SERVICE);
wl = pow.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "lock");

И в манифесте:
<uses-permission android:name="android.permission.WAKE_LOCK" />

Я изначально запихнул этот код в onCreate активити, и по нажатию на кнопку делал wl.acquire(); но это никак не помогало. Далее я пробовал это перенести в сервис и в класс наследующий Application , но ничего не помогает. Так-же проверял на exception, никаких ошибок этот код не выбрасывает.

Так-же в настройках своего смартфона отключил Doze мод для этого приложения, хотя оно перестает работать быстрее чем должен включиться этот мод.

Уведомление тоже сделал таким образом:
Notification notif;
@Override
public void onCreate() {
    Notification.Builder builder = new Notification.Builder(this).setSmallIcon(R.drawable.ic_launcher);
    if (Build.VERSION.SDK_INT < 16) {
        notif = builder.getNotification();
    } else {
        notif = builder.build();
    }
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
    startForeground(777, notif);
}


Что еще сделать чтоб приложение работало в спящем режиме?
  • Вопрос задан
  • 393 просмотра
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы