实例化AlertDialog的Android UncaughtExceptionHandler中断
正如标题所说,我在自定义应用程序类中设置了一个实例化AlertDialog的Android UncaughtExceptionHandler中断,android,exception,uncaught-exception,Android,Exception,Uncaught Exception,正如标题所说,我在自定义应用程序类中设置了一个UncaughtExceptionHandler,该类在应用程序启动时被设置为默认值 但是,虽然文档中没有提到,但我已经读到,您不能使用MyApplication.this或getApplicationContext()实例化对话框。当我试着去做的时候,我得到了一个 WindowManager$BadTokenException 我需要一个替代方案。我曾想过制作一个新的活动来弥补这一点,但我更希望它是一个AlertDialog 是否有一种方法可以从M
UncaughtExceptionHandler
,该类在应用程序启动时被设置为默认值
但是,虽然文档中没有提到,但我已经读到,您不能使用MyApplication.this
或getApplicationContext()
实例化对话框。当我试着去做的时候,我得到了一个
WindowManager$BadTokenException
我需要一个替代方案。我曾想过制作一个新的活动来弥补这一点,但我更希望它是一个AlertDialog
是否有一种方法可以从MyApplication
类内部获取我的UncaughtExceptionHandler
的有效上下文
我已经了解到,您不能使用MyApplication.this或getApplicationContext实例化对话框
对。应用程序上下文对于构建UI不是特别有用
我曾想过做一个新的活动来弥补这一点,但我宁愿它是一个AlertDialog
在这种情况下,警报对话框
是不可能的。对于初学者,只有一个活动可以打开对话框,并且您的任何活动都可能正在运行(例如,后台服务崩溃)且无效(例如,您有一个活动,但它是崩溃的活动)
编辑:修复了前一段以消除混淆您能推荐一个替代方案吗?我希望测试此产品的客户能够在出现异常时报告反馈。我要找的是一个全局未捕获异常钩子,它会询问他们是否要向我们发送报告。@Tom Fobear:对不起,我刚刚意识到我的回答有点过于宽泛。你可以很好地开始一项活动;你就是不能弹出你自己的对话框。使用以对话为主题的活动,您应该可以。记住,你的背景线程应该有他们自己的沉默的异常处理程序,因为你不想在无处的地方弹出活动。太棒了,这正是我需要的所有信息。谢谢。@Commonware:当试图从应用程序中注册的未捕获的ExceptionHandler启动活动时,我收到AndroidRuntimeException