BiometricPromptCompat icon indicating copy to clipboard operation
BiometricPromptCompat copied to clipboard

Leaked window DecorView

Open andrewpmoore opened this issue 6 years ago • 3 comments

I'm getting this error:

2018-06-27 16:03:38.323 27998-27998/com.mypossibleself.app E/WindowManager: android.view.WindowLeaked: Activity com.example.SecurityEntryActivity has leaked window DecorView@1635e7a[Security] that was originally added here
        at android.view.ViewRootImpl.<init>(ViewRootImpl.java:572)
        at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:331)
        at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:97)
        at android.app.Dialog.show(Dialog.java:419)
        at moe.feng.support.biometricprompt.BiometricPromptApi23Impl.authenticate(BiometricPromptApi23Impl.java:133)
        at moe.feng.support.biometricprompt.BiometricPromptCompat.authenticate(BiometricPromptCompat.java:107)

It's triggering when trying to call biometricPrompt.authenticate.

It's only on some phones and only occasionally.

andrewpmoore avatar Jun 27 '18 15:06 andrewpmoore

Dialog will be created once when building BiomtericPromptCompat(Api23Impl).

Could it prevent from causing this error if build BiometricPromptCompat every time you want to call authenticate method?

fython avatar Jun 28 '18 00:06 fython

That is what I'm doing, I've a bioDialog method which has the following in it:

            BiometricPromptCompat biometricPrompt;
            biometricPrompt = new BiometricPromptCompat.Builder(SecurityEntryActivity.this).setTitle(getString(R.string.securityPrompt)).setNegativeButton(getString(R.string.use_password), new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    pinDialog();
                }
            }).build();

            cancellationSignal = new CancellationSignal();
            biometricPrompt.authenticate(cancellationSignal, SecurityEntryActivity.this);

I know it would deviate away from the bioPrompt api, but maybe a way to make a call to dismiss the dialog would help. From reading it may be that when the activity pauses I've got the activity finishing and I've read that the error can happen if your calling finish with a dialog still open.

andrewpmoore avatar Jun 28 '18 08:06 andrewpmoore

Thanks for your suggestion. After finishing what I am busy these days, I will fix it.

Sorry for inconvenience. BTW, I am building AbstractBiometricPromptDialogFragment which can keep dialog states for pre-P devices although it's completely not Compat-like (I am thinking how to improve its usage.).

fython avatar Jun 29 '18 01:06 fython