代码之家  ›  专栏  ›  技术社区  ›  Ali Ha Quang

线程中出现UnaughtException。IUncaughtExceptionHandler-未触发

  •  0
  • Ali Ha Quang  · 技术社区  · 4 年前

    我有一个非常简单的 Thread.IUncaughtExceptionHandler 如下所示

    public class AirExceptionHandler : Java.Lang.Object, Thread.IUncaughtExceptionHandler
        {
            public static readonly string TAG = "AirExHandler";
    
            private MainActivity activity;
            private Thread.IUncaughtExceptionHandler defaultUEH;
    
            public AirExceptionHandler(MainActivity activity)
            {
                Log.Info(TAG, "Initialised");
                this.activity = activity;
                this.defaultUEH = Thread.DefaultUncaughtExceptionHandler;
            }
    
            public void SetActivity(MainActivity activity)
            {
                this.activity = activity;
            }
            public void UncaughtException(Thread t, Throwable e)
            {
                Log.Info(TAG, "Force Closed");
                JavaSystem.Exit(0);
            }
        }
    

    在我的 Mainactivity ,我正在执行以下操作以初始化它 OnCreate

    private static Handlers.AirExceptionHandler _unCaughtExceptionHandler;
    .........
    if (_unCaughtExceptionHandler == null)
       _unCaughtExceptionHandler = new Handlers.AirExceptionHandler(this);
    else
       _unCaughtExceptionHandler.SetActivity(this);
    
    if (Thread.DefaultUncaughtExceptionHandler != _unCaughtExceptionHandler)
        Thread.DefaultUncaughtExceptionHandler = (_unCaughtExceptionHandler);
    

    我能看见 Log.Info(TAG, "Initialised"); 触发,但当我强制关闭我的应用程序时 UncaughtException 未触发

    我做错了什么?

    0 回复  |  直到 4 年前