yayaa / LocationManager

Simplify getting user's location for Android
806 stars 187 forks source link

Crash while app is in background #84

Closed RedFish closed 5 years ago

RedFish commented 6 years ago

Crashlytics (Fabric) report a crash while the application is in background:

Logs

atal Exception: android.view.WindowManager$BadTokenException: Unable to add window -- token android.os.BinderProxy@cb95f3 is not valid; is your activity running? at android.view.ViewRootImpl.setView(ViewRootImpl.java:954) at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:381) at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:100) at android.app.Dialog.show(Dialog.java:420) at com.yayandroid.locationmanager.providers.locationprovider.DefaultLocationProvider.askForEnableGPS(DefaultLocationProvider.java:124) at com.yayandroid.locationmanager.providers.locationprovider.DefaultLocationProvider.get(DefaultLocationProvider.java:111) at com.yayandroid.locationmanager.providers.locationprovider.DispatcherLocationProvider.continueWithDefaultProviders(DispatcherLocationProvider.java:203) at com.yayandroid.locationmanager.providers.locationprovider.DispatcherLocationProvider.runScheduledTask(DispatcherLocationProvider.java:91) at com.yayandroid.locationmanager.helper.continuoustask.ContinuousTask.run(ContinuousTask.java:45) at android.os.Handler.handleCallback(Handler.java:789) at android.os.Handler.dispatchMessage(Handler.java:98) at android.os.Looper.loop(Looper.java:164) at android.app.ActivityThread.main(ActivityThread.java:6944) at java.lang.reflect.Method.invoke(Method.java) at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)

Detail provided by crashlytics:

This crash is usually caused by your app trying to display a dialog using a previously-finished Activity as a context. For example, this can happen if an Activity triggers an AsyncTask that tries to display a dialog when it is finished, but the user navigates back from the Activity before the task is completed.

Ressources: http://dimitar.me/android-displaying-dialogs-from-background-threads/

yayaa commented 6 years ago

Hey, thanks for reporting.

Do you use the LocationBaseActivity or do you have your own implementation? Can you verify that onPause and onDestroy methods are called?

RedFish commented 5 years ago

You are right, I forgot to implement onPause, onResume and onDestroy. Thx! :)