Будет ли TIME_TICK транслироваться в глубоком сне? - PullRequest
6 голосов
/ 18 июля 2010

Просыпается ли Android из глубокого сна, чтобы транслировать ACTION_TIME_TICK? Из экспериментов я не думаю, что это так, но я ищу окончательный ответ.

Мой эксперимент включал регистрацию простого BroadcastReceiver для обновления TextView при получении:

registerReceiver(new BroadcastReceiver() {
    int ctr = 0;
    @Override
    public void onReceive(Context context, Intent intent) {
        testView.setText("Time ticks: " + ++ctr);
    }
}, new IntentFilter(Intent.ACTION_TIME_TICK));

Через 4 такта я выключил экран примерно на 5 минут, затем снова включил его, и он прочитал 6 тактов. При 13 тиках я включил экран на 10 минут, затем снова включил его, и число тиков составило 14. Кажется, он увеличивается только на 1-2 тика, независимо от того, как долго я выключаю телефон, поэтому подозреваю, что это не передает действие во время глубокого сна.

Ответы [ 2 ]

9 голосов
/ 08 ноября 2010

Я посмотрел в код Android. Нет, эта трансляция не разбудит телефон. Для изменения времени трансляции используется AlarmManager.RTC тип Alarm.

Почему вы должны получать уведомления буквально каждую минуту?

Как насчет настройки собственного будильника с использованием типа AlarmManager.RTC_WAKEUP?

ПРЕДУПРЕЖДЕНИЕ : выполнение этой функции каждую минуту разряжает аккумулятор Я предлагаю делать это реже, как каждый час.

Пожалуйста, дайте мне знать, если это полезно.

Эммануил

3 голосов
/ 08 ноября 2010

Лучший эксперимент: вместо обновления TextView, которое вы не видите, когда телефон выключен, напишите в журнал:

Log.v("Tick","Total ticks: " + ++ctr);

Вы можете следить за этим в Logcat, пока ваштелефон спит.

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