Я создаю Launcher. Иногда у меня есть ошибки и, конечно, я должен их исправить, но я пытаюсь использовать UncaughtExceptionHandler для всего моего приложения.Android UncaughtExceptionHandler не работает
Для этого я использую этот класс:
public class clsMyApplication extends Application
{
// uncaught exception handler variable
private UncaughtExceptionHandler defaultUEH;
// handler listener
private Thread.UncaughtExceptionHandler _unCaughtExceptionHandler = new Thread.UncaughtExceptionHandler()
{ @Override public void uncaughtException(Thread thread, Throwable ex)
{
try
{ Save a log file with the error and
save preferences indicating there was an error to display the next start up.
}
catch(Exception e)
{
}
//Alarm to restart app:
PendingIntent myActivity = PendingIntent.getActivity(clsMyApplication.this, 192837, new Intent(clsMyApplication.this, clsMyMainActivity.class), PendingIntent.FLAG_ONE_SHOT);
AlarmManager alarmManager = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
alarmManager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, 5000, myActivity);
System.exit(2);
// re-throw critical exception further to the os (important)
defaultUEH.uncaughtException(thread, ex);
}
};
public clsMyApplication()
{
defaultUEH = Thread.getDefaultUncaughtExceptionHandler();
// setup handler for uncaught exception
Thread.setDefaultUncaughtExceptionHandler(_unCaughtExceptionHandler);
}
}
Я также добавить этот класс к манифесту, как это:
<application
android:name=".clsMyApplication"
....
Но я до сих пор получить Android исключения. Я не могу получить их, используя этот класс. Любая помощь?
Вы пытались переопределить onCreate() вместо использования конструктора? (т. Е. Заменить 'public clsMyApplication()' на 'public void onCreate()') – Gorcyn
Возможный дубликат [Использование глобальной обработки исключений на Android] (http://stackoverflow.com/questions/4427515/using-global-exception- обработка-на-андроиде) – Gorcyn
Я пробовал, как вы и предложили, но это не сработало – Ton