как запланировать задачу, вывести оповещение и перейти на главный экран телефона?

#android #timer #android-alertdialog

#Android #таймер #android-alertdialog

Вопрос:

Я хочу запланировать задачу, поднять окно оповещения, чтобы уведомить пользователя, затем «выйти» из моего приложения и автоматически перейти на главный экран телефона. Но я не знаю, как это сделать. Я попробовал следующий код, но он не работает. Может кто-нибудь мне помочь? Спасибо.

 timer.schedule(task, calendar.getTime());

Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);                      

f.alert(context, title, msg   "Task scheduled for: " calendar.getTime());
  

Метод оповещения — это тот, который я написал из AlertDialog, и он работает нормально. Но при выполнении кода предупреждение не отображается. Может быть, я использую неправильный контекст?

[РЕДАКТИРОВАТЬ] Вот и вся история. У меня есть два сценария. Я разрешаю пользователю запускать задачу сейчас или позже. Если он выберет «Сейчас», он получит экран с индикатором выполнения, на котором ему предлагается подождать, пока задача не будет выполнена. Иначе, если он выберет «Позже», я хочу запланировать задачу с помощью Timer , показать оповещение или тост, затем перейти на главный экран. Задача, ожидающая выполнения в фоновом режиме. Итак, чтобы пропустить индикатор выполнения (ожидая подходящего времени для запуска задачи), я хочу «выйти» из приложения, а затем перейти на главный экран телефона.

Ответ №1:

Вы должны показать оповещение перед началом домашней активности — ваша активность приостанавливается сразу после вызова startActivity . Вы, вероятно, хотите использовать там Toast , а не AlertDialog an, поскольку на данный момент вам почти наверняка не нужен ввод данных пользователем; если вы решительно настроены на использование AlertDialog , вам придется либо отложить переключение на домашнюю активность, пока они не нажмут на нее «ОК», либо запустить новое действие с прозрачной темой, чтобы разместить диалоговое окно, появляющееся на главном экране.

Комментарии:

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

2. Мой первый пост отредактирован, я добавил пояснения о том, что я пытаюсь сделать.

3. Ну, теперь это совсем другой вопрос — теперь вы спрашиваете о том, почему ваша задача не закрывает ваше диалоговое окно, когда оно завершает работу, но вы не опубликовали ни одного из этого кода. Я бы задал это как новый вопрос здесь и опубликовал соответствующий код и задачи.

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

5. ХОРОШО — тогда, как я уже сказал, просто убедитесь, что вы создали и .show() ваш toast , прежде чем вы начнете домашнюю активность. Как только вы начинаете другое действие, ваше действие приостанавливается и не может выполнить какой-либо код пользовательского интерфейса.