Я создал приложение для Android, которое отлично работает во всех телефонах. Но в моем телефоне Alcatel это происходит не так, как телефон переходит в глубокий спящий режим, и сеть данных терпит неудачу, поэтому приложение не получает сеть передачи данных и не синхронизирует данные с сервера.Android с глубоким сном и замками после пробуждения
My Design ...
SystemBootReceiver
->(DataSyncService)Service
->(MyBroadcastReceiver)BroadcastReceiver
->(MyDataService)Service
.
Итак, здесь, при загрузке системы, я запускаю DataSyncService
, где я установил AlarmManager
(повторил) и позвонил MyBroadcastRecever
. После звонка BroadcastRecever
я останавливаю DataSyncService
по телефону stopself()
.
Теперь MyBroadcastRecever
называет MyDataService
.
Я столкнулся с WakeLocks, который, как сказано, предотвращает переезд телефона в глубокий спящий режим. Так я реализовал его в MyDataService
onCreate()
метод
PowerManager pm = (PowerManager)
getSystemService(Context.POWER_SERVICE);
mWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "My Tag");
mWakeLock.acquire();
И release()
замок бодрствование перед остановкой службы.
Я также установил разрешение в манифесте android.
Но это не помогло. Поэтому для быстрой проверки я использовал приложение WAKE LOCK с рынка.
Но это также не разбудило телефон. Снова я наткнулся на приложение WAKE MY ANDROID (приложение, удаленное из магазина) с рынка и установил его .. и здесь произошло волшебство.
Он сохранил телефон в живых.
В описании этого приложения говорится, что они также использовали Wake Lock
. Так что же мне тогда не хватает?
Есть ли ошибка внедрения или проблема с дизайном?
Может быть, вы могли бы попробовать [ACQUIRE_CAUSES_WAKEUP] (http://developer.android.com/reference /android/os/PowerManager.html#ACQUIRE_CAUSES_WAKEUP) с помощью SCREEN_DIM_WAKE_LOCK –
Можете уточнить причину? Проблема в том, что сетевые запросы терпят неудачу, когда приложение запускается после пробуждения устройства? – satur9nine
Вы решили проблему? –