Android UncaughtExceptionHandler that instantiates an AlertDialog breaks

北战南征 提交于 2019-11-27 18:19:28

问题


As the title says, I have an UncaughtExceptionHandler set in my custom application class that gets set as the default when my application starts.

However, while not in the documentation I have read that you cannot instantiate a Dialog using MyApplication.this or getApplicationContext(). When I try to do it, I get a

WindowManager$BadTokenException...

I need an alternative. I have thought of making a new activity to compensate for this but would rather have it be an AlertDialog.

Is there a way I can get a valid context to my UncaughtExceptionHandler from inside MyApplication class?


回答1:


I have read that you cannot instantiate a Dialog using MyApplication.this or getApplicationContext

Correct. The Application context is not especially useful for constructing UIs.

I have thought of making a new activity to compensate for this but would rather have it be an AlertDialog.

An AlertDialog is impossible in this case. For starters, only an activity can open a dialog, and none of your activities may be running (e.g., crash in a background service) and valid (e.g., you had one, but it's the one that crashed).

EDIT: Fixed previous paragraph to clear up confusion



来源:https://stackoverflow.com/questions/5519347/android-uncaughtexceptionhandler-that-instantiates-an-alertdialog-breaks

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!