问题
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