如何实现uncaughtException机器人 [英] how to implement uncaughtException android
本文介绍了如何实现uncaughtException机器人的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我发现这 <一href="http://stackoverflow.com/questions/2681499/android-how-to-auto-restart-application-after-its-been-force-closed">Android:如何自动重新启动应用程序后,它已经与QUOT;强制关闭&QUOT;?
但我不知道在哪里以及如何把报警经理
but I don't know where and how to put the alarm manager
感谢
推荐答案
您可以赶上在你的应用程序扩展类的所有未捕获的异常。在异常处理程序做一些异常,并尝试建立AlarmManager重新启动应用程序。下面是例子,我怎么做我的应用程序,但我只记录异常到一个数据库。
You can catch all uncaught exceptions in your Application extension class. In the exception handler do something about exception and try to set up AlarmManager to restart your app. Here is example how I do it in my app, but I only log exception to a db.
public class MyApplication 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) {
// here I do logging of exception to a db
PendingIntent myActivity = PendingIntent.getActivity(getContext(),
192837, new Intent(getContext(), MyActivity.class),
PendingIntent.FLAG_ONE_SHOT);
AlarmManager alarmManager;
alarmManager = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
alarmManager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP,
15000, myActivity );
System.exit(2);
// re-throw critical exception further to the os (important)
defaultUEH.uncaughtException(thread, ex);
}
};
public MyApplication() {
defaultUEH = Thread.getDefaultUncaughtExceptionHandler();
// setup handler for uncaught exception
Thread.setDefaultUncaughtExceptionHandler(_unCaughtExceptionHandler);
}
}
这篇关于如何实现uncaughtException机器人的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文