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