I totally hear you on the bit about not wanting to add code. That's the only reason I'm not telling you to go with those other solutions ;) I understand you need to keep the barrier for entry as low as possible and hence why this is such a tricky problem.

Something along the lines of checking the reference you had is probably your best bet. But a couple things to keep in mind...

1) Don't keep a reference to the Activity directly. If anything, keep a WeakReference<Activity> and call reference.get() and check if it's null. Keeping a reference to the Activity prevents it from being cleaned up/GC'ed which then keeps all of it's resources and Views alive which can be a very major leak. Keeping a reference to any view or dialog maintains a reference to the same Activity context, so it is equally as bad.

2) Checking if the Activity is null is not enough. The Activity object may still be alive, but may not be active anymore. It could be paused, stopped, cleaned up, etc, even if the reference is still valid. If you try to create a dialog in this state, it will throw an Exception, but I don't remember exactly what type. You could do an exception swallow with catch (Exception ex) but that is kinda hacky. In this case, you could either throw a notification, or just wait until they relaunch the application. That's totally up to you.