В некоторых случаях мне нужно позвонить exit()
в мое приложение (я знаю, что это не лучший способ закончить, но это не вопрос). Также я хочу показать новое диалоговое окно, которое информирует пользователя о сбое.Новое действие иногда не начинается
Я создал новый класс активности, новый вещательный приемник, зарегистрировал их в манифесте. Далее, я называю:
Intent intent = new Intent(this, AppCloseReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(this.getApplicationContext(), 0, intent, 0);
try
{
pendingIntent.send();
}
catch(Exception ex){}
System.exit(0);
Проблема заключается в том, что новое окно иногда! Сначала я думал, что System.exit(0);
срабатывает перед тем, как у новой активности есть шанс начать (из-за асинхронного вызова, мысль не могла найти это в документации), поэтому я добавил Thread.sleep(1000)
между pendingIntent.send();
и System.exit(0);
, но результат тот же - появляется новое окно . В журналах ничего нет, никаких исключений.
Новое действие - это всего лишь статический текст.
Это абсолютно надежный объект. Вызов 'System.exit()' в основном отключает виртуальную машину. Вы не можете гарантировать, что что-то произойдет, когда вы выключите виртуальную машину. Вы, конечно, не можете ожидать, что что-то будет отображаться в пользовательском интерфейсе. Пожалуйста, объясните свой вариант использования и, возможно, мы можем предложить альтернативу. –
Моим вариантом использования является «выходить» при определенных условиях и сообщать пользователю, почему приложение остановилось. В качестве альтернативы я использую уведомление, но мне нужно больше решений для сохранения, которые должны оставаться на экране и ждать, пока пользователь не закроет его вручную. – nikitablack