3

我希望能够在我的 Xamarin Android 应用程序崩溃时显示一个对话框。诸如“抱歉应用程序已崩溃”之类的内容。您想向开发者发送错误报告吗?”。

我已经连接到 Thread.DefaultUncaughtExceptionHandler,它在捕获到异常时调用 UncaughtException。

当异常被捕获时,我尝试启动一个新的活动来显示对话框 - 对话框被创建但只显示一个带有标题的空白对话框。OnCreate 永远不会被调用,对话框似乎只是挂起。

如果我在应用程序运行时调用代码以正常显示对话框,它会显示并正确运行,因此对话框代码似乎没有任何问题。

有谁知道如何解决这个问题?

4

3 回答 3

1

目前没有支持和推荐的方法来捕获和识别 Xamarin.Android 中未处理的异常。希望他们能尽快解决这个问题。

http://mono-for-android.1047100.n5.nabble.com/Catch-all-the-exceptions-td5165993.html

请参阅 Jonathan Pryor-2 帖子。

于 2013-05-03T12:37:11.207 回答
1

我找到了一种捕获未处理异常的方法。这取决于抛出异常的位置。如果异常发生在后台线程上,则可以通过在继承自 Mono Application 类的类中连接以下事件来发现它。

AppDomain.CurrentDomain.UnhandledException

我认为您的应用程序已崩溃,并且系统没有可用的上下文来创建您的新活动并显示您的对话框。

我已经使用了下面链接中的示例,只要异常发生在主 ui 线程之外,我就能够恢复并显示 toast,所以我相信它可以用来做你需要的事情。

更多信息:http: //xandroid4net.blogspot.com/2013/11/how-to-capture-unhandled-exceptions.html

于 2013-11-24T15:45:41.017 回答
0

当应用程序因您提供的示例而崩溃时,我可以显示 Toast 消息。但我无法显示警报窗口。我正在编写以下代码以在 Android 设备的 UnHandled Exception 事件中显示和警告消息。

 'alert.SetTitle("Un Handled Exception Event");
 SetMessage("Un Handled Exception Event triggered");
 SetCancelable(true);
 Show();'
于 2017-04-11T15:01:56.393 回答