Не работает 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);
}
Что еще сделать чтоб приложение работало в спящем режиме?