收集未捕获异常提示后重启程序
2013-01-29 11:36
447 查看
public class UEHandler implements Thread.UncaughtExceptionHandler { private MyApp softApp; private Context context; public UEHandler(MyApp app,Context context) { softApp = app; this.context = context; } public void uncaughtException(Thread thread, Throwable ex) { // fetch Excpetion Info ex.printStackTrace(); // print long threadId = thread.getId(); //Log.d("ANDROID_LAB", "Thread.getName()=" + thread.getName() + " id=" + threadId + " state=" + thread.getState()); //Log.d("ANDROID_LAB", "Error[" + info + "]"); new Thread() { @Override public void run() { Looper.prepare(); Toast.makeText(context, "很抱歉,程序出现异常,即将退出。", Toast.LENGTH_LONG).show(); Looper.loop(); } }.start(); try { thread.sleep(3*1000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } if (threadId != 1) { // 此处示例跳转到汇报异常界面。 Intent intent = new Intent(softApp, splash.class); softApp.startActivity(intent); } else { // 此处示例发生异常后,重新启动应用 Intent intent = new Intent(softApp, splash.class); // 如果<span style="background-color: rgb(255, 255, 255); ">没有NEW_TASK标识且</span>是UI线程抛的异常则界面卡死直到ANR intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); softApp.startActivity(intent); // write 2 /data/data/<app_package>/files/error.log // kill App Progress android.os.Process.killProcess(android.os.Process.myPid()); } } }
public void onCreate() { super.onCreate(); need2Exit = false; ueHandler = new UEHandler(this,getApplicationContext()); Thread.setDefaultUncaughtExceptionHandler(ueHandler); // 程序崩溃时触发线程 }
相关文章推荐
- MFC 程序崩溃自动重启 和 未捕获到的异常写退出栈
- C#WinForm程序异常退出的捕获、继续执行与自动重启
- C#WinForm程序异常退出的捕获、继续执行与自动重启
- 转 C#WinForm程序异常退出的捕获、继续执行与自动重启
- 全部捕获异常之后重启程序
- C#WinForm程序异常退出的捕获、继续执行与自动重启
- 捕获全局异常并重启程序
- C#WinForm程序异常退出的捕获、继续执行与自动重启
- 程序崩溃自动重启和未捕获到的异常写退出栈
- 捕获崩溃异常并重启程序,上传崩溃日志到服务器
- android捕获程序异常退出
- win7安装oracle 10g时发生“程序异常终止。发生内部错误”的提示 解决办法
- Android编程实现捕获程序异常退出时的错误log信息功能详解
- 程序错误、异常(语法、抛出、捕获、传播)、栈展开
- wpf 程序异常捕获,而不崩溃退出
- ios程序中捕获异常退出信息,并提交服务器
- android 中处理崩溃异常并重启程序
- 程序异常捕获库 - CrashRpt
- 程序异常捕获库 - CrashRpt
- 【转】Winform程序未捕获异常解决方法 EventType clr20r3 P1