yanzhenjie / AndPermission

:strawberry: Permissions manager for Android platform.

Home Page:https://yanzhenjie.com/AndPermission

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

TaskExecutor 线程中 diallog dismiss时,Activity已经不在时报错

htmssfh opened this issue · comments

java.lang.IllegalArgumentException: View=com.android.internal.policy.PhoneWindow$DecorView{c814f32 V.E...... R......D 0,0-301,64} not attached to window manager
at android.view.WindowManagerGlobal.findViewLocked(WindowManagerGlobal.java:424)
at android.view.WindowManagerGlobal.removeView(WindowManagerGlobal.java:350)
at android.view.WindowManagerImpl.removeViewImmediate(WindowManagerImpl.java:116)
at android.app.Dialog.dismissDialog(Dialog.java:377)
at android.app.Dialog.dismiss(Dialog.java:360)
at com.yanzhenjie.permission.task.TaskExecutor.onPostExecute(TaskExecutor.java:49)
at android.os.AsyncTask.finish(AsyncTask.java:651)
at android.os.AsyncTask.-wrap1(AsyncTask.java)
at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:668)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5539)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:745)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:635)

me too。
Thread Name: 'main'
Back traces starts.
java.lang.RuntimeException: Error receiving broadcast Intent { act=xxxx.andpermission.bridge.Thread-10 flg=0x10 } in com.yanzhenjie.permission.bridge.Messenger@b740bec
at android.app.LoadedApk$ReceiverDispatcher$Args.lambda$getRunnable$0(LoadedApk.java:1407)
at android.app.-$$Lambda$LoadedApk$ReceiverDispatcher$Args$_BumDX2UKsnxLVrE6UJsJZkotuA.run(Unknown Source:2)
at android.os.Handler.handleCallback(Handler.java:873)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:201)
at android.app.ActivityThread.main(ActivityThread.java:6810)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:873)
Caused by: android.view.WindowManager$BadTokenException: Unable to add window -- token android.os.BinderProxy@4e37aad is not valid; is your activity running?
at android.view.ViewRootImpl.setView(ViewRootImpl.java:842)
at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:356)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:94)
at android.app.Dialog.show(Dialog.java:329)
at com.yanzhenjie.permission.task.TaskExecutor.onPreExecute(TaskExecutor.java:42)
at android.os.AsyncTask.executeOnExecutor(AsyncTask.java:648)
at com.yanzhenjie.permission.task.TaskExecutor.execute(TaskExecutor.java:60)
at com.yanzhenjie.permission.runtime.MRequest.onCallback(MRequest.java:115)
at com.yanzhenjie.permission.bridge.RequestExecutor.onCallback(RequestExecutor.java:115)
at com.yanzhenjie.permission.bridge.Messenger.onReceive(Messenger.java:54)
at android.app.LoadedApk$ReceiverDispatcher$Args.lambda$getRunnable$0(LoadedApk.java:1397)
... 8 more

这个加入软引用应该就没问题了