2015-09-08 3 views
0

Я внедрил ExceptionHandler, чтобы предотвратить запуск приложения, которое сработает, и оно работает. Моя проблема в том, что он больше не отображает диалоговое окно с ошибкой. Здесь код ExceptionHandler:Исключить исключение из UncaughtExceptionHandler, но показать диалог сбоя

public class MyExceptionHandler implements 
    java.lang.Thread.UncaughtExceptionHandler { 
private final Context myContext; 
private final Class<?> myActivityClass; 

public MyExceptionHandler(Context context, Class<?> c) { 

    myContext = context; 
    myActivityClass = c; 
} 

public void uncaughtException(Thread thread, Throwable exception) { 

    StringWriter stackTrace = new StringWriter(); 
    exception.printStackTrace(new PrintWriter(stackTrace)); 
    System.err.println(stackTrace);// You can use LogCat too 
    Intent intent = new Intent(myContext, myActivityClass); 
    String s = stackTrace.toString(); 
    //you can use this String to know what caused the exception and in which Activity 
    intent.putExtra("uncaughtException", 
      "Exception is: " + stackTrace.toString()); 
    intent.putExtra("stacktrace", s); 
    myContext.startActivity(intent); 
    //for restarting the Activity 
    Process.killProcess(Process.myPid()); 
    System.exit(0); 
} 
} 

Кто-нибудь есть идея, как отобразить нормальный диалог черной аварии, перед запуском приложения?

Заранее благодарен!

ответ

0

Я нашел решение. Проблема была:

Intent intent = new Intent(myContext, myActivityClass); 
String s = stackTrace.toString(); 
//you can use this String to know what caused the exception and in which Activity 
intent.putExtra("uncaughtException", 
     "Exception is: " + stackTrace.toString()); 
intent.putExtra("stacktrace", s); 
myContext.startActivity(intent); 

Удаление startActivity, решена проблема диалога, и до сих пор перезапуске приложения, как и ожидалось.

EDIT:

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

Смежные вопросы