diff --git a/qmui/src/main/java/com/qmuiteam/qmui/widget/dialog/QMUIBaseDialog.java b/qmui/src/main/java/com/qmuiteam/qmui/widget/dialog/QMUIBaseDialog.java index 60450693..2bf00473 100644 --- a/qmui/src/main/java/com/qmuiteam/qmui/widget/dialog/QMUIBaseDialog.java +++ b/qmui/src/main/java/com/qmuiteam/qmui/widget/dialog/QMUIBaseDialog.java @@ -16,19 +16,21 @@ package com.qmuiteam.qmui.widget.dialog; +import android.app.Activity; import android.content.Context; +import android.content.ContextWrapper; import android.content.res.TypedArray; import android.view.LayoutInflater; import android.view.Window; -import com.qmuiteam.qmui.skin.QMUISkinLayoutInflaterFactory; -import com.qmuiteam.qmui.skin.QMUISkinManager; - import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.appcompat.app.AppCompatDialog; import androidx.core.view.LayoutInflaterCompat; +import com.qmuiteam.qmui.skin.QMUISkinLayoutInflaterFactory; +import com.qmuiteam.qmui.skin.QMUISkinManager; + public class QMUIBaseDialog extends AppCompatDialog { boolean cancelable = true; private boolean canceledOnTouchOutside = true; @@ -112,4 +114,24 @@ public class QMUIBaseDialog extends AppCompatDialog { } return canceledOnTouchOutside; } + + @Override + public void dismiss() { + Context context = getContext(); + if(context instanceof ContextWrapper){ + context = ((ContextWrapper)context).getBaseContext(); + } + if(context instanceof Activity){ + Activity activity = (Activity) context; + if(activity.isDestroyed() || activity.isFinishing()){ + return; + } + super.dismiss(); + }else{ + try{ + super.dismiss(); + }catch (Throwable ignore){ + } + } + } } diff --git a/qmui/src/main/java/com/qmuiteam/qmui/widget/dialog/QMUIBottomSheetListAdapter.java b/qmui/src/main/java/com/qmuiteam/qmui/widget/dialog/QMUIBottomSheetListAdapter.java index 70d3150c..d8f8cc6b 100644 --- a/qmui/src/main/java/com/qmuiteam/qmui/widget/dialog/QMUIBottomSheetListAdapter.java +++ b/qmui/src/main/java/com/qmuiteam/qmui/widget/dialog/QMUIBottomSheetListAdapter.java @@ -19,13 +19,13 @@ package com.qmuiteam.qmui.widget.dialog; import android.view.View; import android.view.ViewGroup; -import java.util.ArrayList; -import java.util.List; - import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.recyclerview.widget.RecyclerView; +import java.util.ArrayList; +import java.util.List; + public class QMUIBottomSheetListAdapter extends RecyclerView.Adapter { public static final int ITEM_TYPE_HEADER = 1; @@ -124,14 +124,14 @@ public class QMUIBottomSheetListAdapter extends RecyclerView.Adapter