7

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?

Volo
  • 28,673
  • 12
  • 97
  • 125
Tom Fobear
  • 6,729
  • 7
  • 42
  • 74

1 Answers1

8

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

CommonsWare
  • 986,068
  • 189
  • 2,389
  • 2,491
  • can you suggest an alternative? I want customers who test this product to be able to report feedback if an exception occurs. What I am looking for is a global uncaught exception hook that will ask if they want to send a report to us. – Tom Fobear Apr 01 '11 at 22:16
  • 4
    @Tom Fobear: Sorry, just realized I was a little over-broad in my answer. You can start up an activity just fine; you just can't pop your own dialog. Use a dialog-themed activity, and you should be OK. Bear in mind, though, that your background threads should have their own silent uncaught exception handler, as you do not want to be popping up activities in the middle of nowhere. – CommonsWare Apr 01 '11 at 22:42
  • Thats great, thats just about all the information I need. Thank you. – Tom Fobear Apr 01 '11 at 22:49
  • @CommonsWare: I get an AndroidRuntimeException when attempting to start an activity from an UncaughtExceptionHandler registered in Application – Thomas Dignan Nov 12 '12 at 20:30