Android Java Таймер для уведомлений - PullRequest
0 голосов
/ 12 июня 2018

Я строю приложение в Java для Android.Для этого у меня есть календарь.Он хочет сделать так: каждый раз в 8 часов таймер должен проверять, есть ли событие на следующий день.Если он есть, он должен уведомить пользователя.

Уведомление не является проблемой, но как мне установить время «триггерной точки» на 8 часов?

В руководствах на YouTube, у них всегда есть кнопка в качестве триггера, но в моем случае я не могу решить, когда Таймер запускается так: (.

Вот моя попытка: (Я хотел получить числа последних эпох и сравнить ихк настоящему времени)

timer = new Timer();
        timer.scheduleAtFixedRate(new TimerTask() {
            @Override
            public void run() {

                int time = (int) System.currentTimeMillis();
                Log.e("Timer:", "Tick");

                if(new String("" + time).endsWith("" + 18980000)){
                    createAndDisplayNotification("Hello there!");
                }
            }
        }, 0, 1000);

Надеюсь, вы, ребята, можете мне помочь ...;).

Ответы [ 2 ]

0 голосов
/ 12 июня 2018

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

, вот руководство по Android, которое описывает, как планировать задачус диспетчером сигнализации:

https://en.proft.me/2017/05/7/scheduling-operations-alarmmanager-android/

0 голосов
/ 12 июня 2018

Вместо использования timer.scheduleAtFixedRate используйте метод timer.schedule:

Запланирует выполнение указанной задачи в указанное время .Если время в прошлом, задание запланировано для немедленного выполнения.

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

...