Android глубокий сон и бодрствование
Я создал приложение для Android, которое отлично работает на всех телефонах. Но в моем телефоне Alcatel это нет, когда телефон переходит в режим глубокого сна и происходит сбой сети передачи данных, поэтому приложение нене получить сеть передачи данных и несинхронизировать данные с сервера.
Мой дизайн ...
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 Manifest.
Но это нет работа. Так что для быстрой проверки я использовалWAKE LOCK приложение с маркета.
Но это также нене будить телефон. Снова я наткнулся на приложение WAKE MY ANDROID (приложение удалено из магазина) с маркета и установил его ... и тут произошло волшебство.
Он поддерживал телефон в живых.
Как описание в этом приложении говорит, что они также использовалиWake Lock
, Так чего же мне тогда не хватает?
Есть ошибка реализации или проблема дизайна?