如何在强制关闭或ANR消息发生之前显示自定义消息

时间:2010-08-11 22:23:34

标签: android android-emulator

如何在取消抵押品赎回权之前显示自定义错误消息,或者应用程序将发生应用程序未响应消息。

或者

我可以显示自定义消息,例如“请等待.....”而不是应用程序无响应消息。

谢谢

2 个答案:

答案 0 :(得分:2)

您必须确保处理任何抛出的异常。这就是导致部队关闭的原因,一个未被捕获的例外。至于“不响应”的消息,再次,这取决于开发人员。您需要生成新线程并执行异步任务,这样处理不会阻止主线程,这是UI运行的内容。当主线程被阻塞时,即“无响应”消息发生时。如果您生成一个新线程,那么您可以向用户显示您想要的任何类型的消息,以通知他们正在处理某些内容。

答案 1 :(得分:2)

我将添加Ryan的答案,即您可以处理所有关键异常,而无需将大部分代码包装在try-catch中。有一种很好的方法:Thread.setDefaultUncaughtExceptionHandler。它主要用于错误报告。为了显示消息,您必须在Application.onCreate中设置处理程序(您必须在清单中将<application>的{​​{1}}设置为自定义Application类),保存应用程序上下文然后使用它在状态栏中显示通知 - 它在应用程序强制关闭后仍然存在。此外,为了在异常处理程序工作后出现强制关闭对话框而不是冻结,您应该在处理程序的构造函数中调用android:name,然后在defaultHandler = Thread.getDefaultUncaughtExceptionHandler();调用public void uncaughtException(...)的末尾调用defaultHandler.uncaughtException(thread, ex); }。

相关问题