#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 , прежде чем вы начнете домашнюю активность. Как только вы начинаете другое действие, ваше действие приостанавливается и не может выполнить какой-либо код пользовательского интерфейса.