Проверяйте время каждую минуту по широковещательному приемнику - PullRequest
0 голосов
/ 13 февраля 2019

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

<action android:name="android.intent.ACTION_TIME_CHANGED"/>
                <action android:name="android.intent.ACTION_TIME_TICK"/>
                <action android:name="android.intent.action.TIME_TICK"/>

и положить это в приемник вещания

@Override
    public void onReceive(Context context, Intent intent)
    {
        Toast.makeText(context,"changed",Toast.LENGTH_LONG)
            .show();

    }

Мое приложение не 'не работал или делал что-то, что искал все больше и больше, но ничего не помогло, я надеюсь, что кто-то поможет мне

1 Ответ

0 голосов
/ 13 февраля 2019

Как вы написали <action android:name="android.intent.ACTION_TIME_CHANGED"/>, похоже, что вы пытаетесь зарегистрировать свой BroadcastReceiver в Manifest.xml.

Однако я процитирую это прямо из документации:

ACTION_TIME_TICK

Broadcast Action: Текущее время изменилось.Отправляется каждую минуту.Вы не можете получить это через компоненты, объявленные в манифестах, только явно зарегистрировавшись для этого в Context.registerReceiver ().

- https://developer.android.com/reference/android/content/Intent.html#ACTION_TIME_TICK

Вы можете получить эту трансляцию толькорегистрация BroadcastReceiver с помощью метода registerReceiver() в виде, подобном вашему Activity или Service.

Однако я хочу отметить, что вам следует избегать использования этой трансляции, если вы собираетесь создать приложение Alarm.

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

Вместо этого вам следует рассмотреть возможность планирования вашего будильника через такие службы, как JobScheduler или AlarmManager.

...