1

我有一个AlertDialogonCreate方法上创建的活动。

当活动被破坏时,我得到这个异常:

E/ActivityThread: Activity com.materight.turkdroid.ui.activities.LoginActivity has leaked IntentReceiver androidx.appcompat.app.AppCompatDelegateImpl$AutoNightModeManager$1@18c886c that was originally registered here. Are you missing a call to unregisterReceiver()?
    android.app.IntentReceiverLeaked: Activity com.materight.turkdroid.ui.activities.LoginActivity has leaked IntentReceiver androidx.appcompat.app.AppCompatDelegateImpl$AutoNightModeManager$1@18c886c that was originally registered here. Are you missing a call to unregisterReceiver()?
        at android.app.LoadedApk$ReceiverDispatcher.<init>(LoadedApk.java:1429)
        at android.app.LoadedApk.getReceiverDispatcher(LoadedApk.java:1210)
        at android.app.ContextImpl.registerReceiverInternal(ContextImpl.java:1476)
        at android.app.ContextImpl.registerReceiver(ContextImpl.java:1449)
        ...
        at com.materight.turkdroid.ui.activities.LoginActivity.onCreate(LoginActivity.java:74)
        ...

引发错误的line 74位置是创建对话框的位置:

        pendingDialog = new MaterialAlertDialogBuilder(this)
                .setCancelable(false)
                .setTitle(R.string.pending_purchase_title)
                .setMessage(R.string.pending_purchase_content)
                .setPositiveButton(R.string.close, (d, which) -> finishAffinity())
                .create();

我已经尝试添加pendingDialog.dismiss(),onDestroy和没有结果的方法finishfinishAffinity该对话框并不总是显示,所以dismiss在这种情况下该方法可能无法正常工作?

是什么导致了这个异常,我该如何解决?

谢谢!

4

1 回答 1

0

经过多次尝试,我终于找到了解决方案。

Symply 通过使用finishAffinity()而不是finish()关闭当前活动,问题消失了。

于 2020-10-14T13:14:58.623 回答