显示关于未处理异常的对话框
本文关键字:对话框 异常 未处理 显示 | 更新日期: 2023-09-27 18:10:11
我希望能够在我的Xamarin Android应用程序崩溃时显示一个对话框。比如"对不起,应用程序崩溃了。"您是否要向开发人员发送错误报告?".
我已经迷上了Thread。DefaultUncaughtExceptionHandler,在捕获异常时调用UncaughtException。
当异常被捕获时,我尝试启动一个新的活动来显示对话框-对话框被创建,但只有一个带有标题的空白对话框被显示。OnCreate永远不会被调用,对话框似乎只是挂起。
如果我调用代码来正常显示对话框,当应用程序正在运行时,它会显示并正确运行,所以对话框代码似乎没有任何问题。
谁知道怎么解决这个问题?
目前在Xamarin.Android中没有支持和推荐的方法来捕获和识别未处理的异常。希望他们尽快解决这个问题。
见http://mono-for-android.1047100.n5.nabble.com/Catch-all-the-exceptions-td5165993.html
参见Jonathan Pryor-2的帖子
我发现了一种捕捉未处理异常的方法。这取决于抛出异常的位置。如果异常发生在后台线程中,则可以通过在继承Mono Application类的类中连接以下事件来捕获异常。
AppDomain.CurrentDomain.UnhandledException
我认为你的应用程序已经崩溃了,没有上下文可用于系统创建你的新活动和显示你的对话框。
我已经使用了下面链接中的例子,只要异常发生在主ui线程之外,我就能够恢复并显示toast,所以我有信心它可以用来做你需要的事情。
更多信息:http://xandroid4net.blogspot.com/2013/11/how-to-capture-unhandled-exceptions.html
我能够在应用程序崩溃时显示Toast消息,您提供的示例。但是我不能显示警告窗口。我正在写下面的代码来显示和警告消息在UnHandled Exception事件android设备
'alert.SetTitle("Un Handled Exception Event");
SetMessage("Un Handled Exception Event triggered");
SetCancelable(true);
Show();'