I have below crash reported by a user of my app.
Caused by android.view.WindowManager$BadTokenException: Unable to add window -- token android.os.BinderProxy@56492cc is not valid; is your activity running?
at android.view.ViewRootImpl.setView(ViewRootImpl.java:567)
at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:310)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:85)
at android.app.Dialog.show(Dialog.java:319)
at android.app.ProgressDialog.show(ProgressDialog.java:116)
at android.app.ProgressDialog.show(ProgressDialog.java:99)
at com.my.app.MyActivity.reloadCardView(MyActivity.java:253)
at com.my.app.MyActivity.refreshTable(MyActivity.java:247)
at com.my.app.MyActivity.onCreate(MyActivity.java:133)
...
...
I am showing a ProgressDialog
in in a method invoked from onCreate()
. So, checking isFinishing()
looks irrelevant to me.
So, what is the scenario where a crash like this can happen? I couldn't re-create this in my devices. Do I need to check isFinishing()
before showing a progress dialog, even in onCreate()
?