显示关于未处理异常的对话框

本文关键字:对话框 异常 未处理 显示 | 更新日期: 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();'