Я хотел избежать краха приложения, а затем я разработал метод uncaughtException, чтобы вызвать другое действие; он отлично работает. Если приложение вылетает из любой активности, вызывается исключение uncaughtException и появляется моя ErrorActivity. Проблема заключается в том, что я пытаюсь закрыть приложение после сбоя. Когда я нажимаю кнопку «Назад», ErrorActivity закрывается, но затем появляется белый экран с панелью действий, и через несколько секунд снова вызывается ErrorActivity. Таким образом, закрыть приложение невозможно, за исключением того, что в приложении taskmanager завершено приложение.Android Uncaught без белого экрана
@Override
public void onCreate() {
super.onCreate();
Thread.setDefaultUncaughtExceptionHandler (new Thread.UncaughtExceptionHandler()
{
@Override
public void uncaughtException (Thread thread, Throwable e)
{
handleUncaughtException (thread, e);
}
});
}
public void handleUncaughtException (Thread thread, Throwable exception)
{
StringWriter _stackTrace = new StringWriter();
exception.printStackTrace(new PrintWriter(_stackTrace));
Intent _intent = new Intent();
_intent.setAction ("com.mypackage.ERROR_ACTIVITY");
_intent.setFlags (Intent.FLAG_ACTIVITY_NEW_TASK);
_intent.putExtra("error", _stackTrace.toString());
startActivity(_intent);
System.exit(0);
}
Итак, вы хотите закрыть приложение onBackPressed? Почему бы вам просто не реализовать @Override onBackPressed в вашей ErrorActivity и сделать что-то вроде нового Finalizer(). KillApp (true); там? – tritop
И, с другой стороны, попробуйте moveTaskToBack (true) вместо System.exit() или нового Finalizer(). KillApp (true). – tritop
Я попробовал это moveTaskToBack (правда), но когда я попытаюсь открыть приложение снова, устройство перестает работать :( –