From 5864e2f0ff70448e18c5dda1fe0ea1504b9110eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Android=20=E8=BD=AE=E5=AD=90=E5=93=A5?= Date: Sun, 12 Nov 2023 17:41:22 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=88=A4=E6=96=AD=20Activity?= =?UTF-8?q?=20=E6=98=AF=E5=90=A6=E5=8F=AF=E7=94=A8=E7=9A=84=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E5=86=99=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/hjq/toast/ToastStrategy.java | 21 +++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/library/src/main/java/com/hjq/toast/ToastStrategy.java b/library/src/main/java/com/hjq/toast/ToastStrategy.java index 3e3a57f..3165150 100644 --- a/library/src/main/java/com/hjq/toast/ToastStrategy.java +++ b/library/src/main/java/com/hjq/toast/ToastStrategy.java @@ -105,8 +105,7 @@ public IToast createToast(ToastParams params) { Settings.canDrawOverlays(mApplication)) { // 如果有悬浮窗权限,就开启全局的 Toast toast = new GlobalToast(mApplication); - } else if (!params.crossPageShow && foregroundActivity != null && !foregroundActivity.isFinishing() && - (VERSION.SDK_INT >= VERSION_CODES.JELLY_BEAN_MR1 && !foregroundActivity.isDestroyed())) { + } else if (!params.crossPageShow && isActivityAvailable(foregroundActivity)) { // 如果没有悬浮窗权限,就开启一个依附于 Activity 的 Toast toast = new ActivityToast(foregroundActivity); } else if (Build.VERSION.SDK_INT == Build.VERSION_CODES.N_MR1) { @@ -314,4 +313,22 @@ protected boolean areNotificationsEnabled(Context context) { protected Activity getForegroundActivity() { return ActivityStack.getInstance().getForegroundActivity(); } + + /** + * Activity 是否可用 + */ + protected boolean isActivityAvailable(Activity activity) { + if (activity == null) { + return false; + } + + if (activity.isFinishing()) { + return false; + } + + if (VERSION.SDK_INT >= VERSION_CODES.JELLY_BEAN_MR1) { + return !activity.isDestroyed(); + } + return true; + } } \ No newline at end of file