Android: отслеживание изменения даты

176
23 марта 2017, 19:27

Ситуация следующая: есть TextView, текст отличается в зависимости от того, какая дата в системе. Я пытаюсь сделать так, чтобы это изменение происходило динамически.

Пока что нашёл как сделать ежеминутную проверку даты, но это не совсем то. Можно ли сделать Listener, который слушает системную дату всё время, а не посылает запросы через какие-то интервалы? Допустим, открыл окно с TextView в 23:59, через минуту текст поменялся без перезапуска программы или рефреша.

Answer 1

Использование AsyncTask в данном случае плохая практика. Однозначно подобные задачи решаются через BroadcastReceiver. То есть, по наступлении определенного события, система рассылает "сообщения" приложениям. Если в приложении есть BroadcastReceiver, отвечающий за данное сообщение, произойдет необходимое действие.

Примерно так:

а) Добавляем в Android manifest (в application) следующее (у меня был свой пример с переключением режима "В полете", но там же можно посмотреть и другие варианты, например, android.intent.action.DATE_CHANGED, что нам и нужно).

<receiver android:name=".receivers.MyAirplaneReceiver">
            <intent-filter>
                <action android:name="android.intent.action.AIRPLANE_MODE" />
            </intent-filter>
        </receiver>

б) Создаем класс, который будет отвечать за данное действие, например:

public class MyAirplaneReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        Log.v("myLog", "Просто выводим лог!");
    }
}
Answer 2

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

READ ALSO
Как удалить значение из поля с помощью Java Reflection

Как удалить значение из поля с помощью Java Reflection

При попыткt установить в поле значение null я получаю ошибку

196
IDEA mysql-connector-java

IDEA mysql-connector-java

Следующий вопрос почему когда в pomxml описана зависимость mysql mysql-connector-java 5

183
Как считать данные из SpreadSheet Google Excel?

Как считать данные из SpreadSheet Google Excel?

Как считать данные из SpreadSheet Google Excel?

228
Подвисает шторка в Navigation Drawer

Подвисает шторка в Navigation Drawer

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

157