Android "тормозит" при выключенном экране - PullRequest
1 голос
/ 19 сентября 2011

Я работаю над приложением, которое публикует сообщения в Интернете каждые 30 секунд. Все работает нормально, пока не погас экран. Таймер, кажется, замедлился. Это займет около 5 минут, чтобы опубликовать. Я пытался приобрести wake-lock и setforegroundacctivity, но ничего не работает. Есть идеи?

Он работает как сервис, я использую его для wake-lock:

PowerManager mgr = (PowerManager)this.getSystemService(Context.POWER_SERVICE);
WakeLock wakeLock = mgr.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "MyWakeLock");
wakeLock.acquire();

И вот пример для установки переднего плана: http://developer.android.com/reference/android/app/Service.html

Я также пытался проверить, что это может быть с помощью отладчика, но все работает нормально, когда подключен USB.

Более подробно: Для проверки с регулярными интервалами я использую это:

Private void startCheck() {
mCheckHandler.sleep(30000);
}

    private CheckHandler mCheckHandler = new CheckHandler(); 
     private class CheckHandler extends Handler {  
            @Override  
            public void handleMessage(Message msg) {  
                Pservice.this.startCheck();
            }  

            public void sleep(long delayMillis) {  
              this.removeMessages(0);  
              sendMessageDelayed(obtainMessage(0), delayMillis);  
            }  
          };  

Я настроил его на активацию пробуждения при каждой проверке интернета. Теперь работает нормально :) Спасибо за вашу помощь :)

Ответы [ 3 ]

2 голосов
/ 19 сентября 2011

Когда экран погаснет, устройство в конечном итоге перейдет в состояние низкого энергопотребления.Такое состояние низкого энергопотребления в основном означает, что ваш код не будет выполнен.Причина, по которой это занимает 5 минут, заключается в том, что какое-то другое приложение «пробуждает» устройство, а затем у вашего приложения появляется возможность снова его запустить.

При подключении устройства через USB вы предотвращаете возникновение состояния низкого энергопотребления..

Звучит так, как будто ваша пробужденная блокировка на самом деле не была получена, или она была снята слишком рано.

0 голосов
/ 19 сентября 2011

Я, например, агрессивно разгоняю свои андроид устройства, когда экран выключен.

Также вы упомянули:

Я также пытался проверить, что это может быть сотладчик, но все работает нормально, когда подключен USB.

Попробуйте использовать ADB Wireless для отладки без подключения к USB или просто используйте ведение журнала.

0 голосов
/ 19 сентября 2011

Тестировали ли вы на других устройствах, ромах, эмуляторах? Иногда простая проблема с тем, как код изготовителя устройства может вызвать подобные проблемы.

Какое устройство и ром вы используете?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...