android开发分享在android上使用全局exception处理

有没有代码示例,或者有关如何使用Thread.setDefaultUncaughtExceptionHandler方法的教程? 基本上我试图显示一个自定义提醒对话框,每当引发exception,在我的应用程序。 是否有可能做到这一点? 我知道如果在UI线程中抛出exception,在屏幕上显示某些内容会有点棘手,但是我不知道有什么解决办法。

    一个解决scheme来到这个页面的人的基本示例:)

    public class ChildActivity extends BaseActivity { @SuppressWarnings("unused") @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); int a=1/0; } } 

    类处理错误:

     public class BaseActivity extends Activity{ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() { @Override public void uncaughtException(Thread paramThread, Throwable paramThrowable) { Log.e("Alert","Lets See if it Works !!!"); } }); } } 

    下面是Mohit Sharma的一个变体, 它有以下改进:

    码:

     public class BaseActivity extends Activity { @Override public void onCreate() { super.onCreate(); final Thread.UncaughtExceptionHandler oldHandler = Thread.getDefaultUncaughtExceptionHandler(); Thread.setDefaultUncaughtExceptionHandler( new Thread.UncaughtExceptionHandler() { @Override public void uncaughtException( Thread paramThread, Throwable paramThrowable ) { //Do your own error handling here if (oldHandler != null) oldHandler.uncaughtException( paramThread, paramThrowable ); //Delegates to Android's error handling else System.exit(2); //Prevents the service/app from freezing } }); } } 

    请记住,在设置处理程序之前检查The RuntimePermission("setDefaultUncaughtExceptionHandler") ,并确保通过抛出一个未捕获的exception,导致进程暂停,因为事情可能处于不确定状态。

    不要显示任何东西,事实上UI线程可能是崩溃的,写日志和/或发送细节到服务器,而不是。 你可能想看看这个问题及其答案 。

    以上就是android开发分享在android上使用全局exception处理相关内容,想了解更多android开发(异常处理)及android游戏开发关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/addevelopment/513609.html

      (0)
      上一篇 2020年11月29日
      下一篇 2020年11月29日

      精彩推荐