Blankj / Blankj/AndroidUtilCode

ToastUtils在没有开启通知权限并且同时存在多个可见活动时,弹出多个Toast

Offen
#1,772 1 Kommentar 0 Reaktionen 1 zugewiesene Person Beansprucht von @Blankj Auf GitHub ansehen
bug
Vorherrschende Sprache
Java
Sterne
33.6k
Forks
10.6k
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

## 描述 Bug

如题,当界面上同时存在多个可见活动(透明背景的活动模拟dialog),同时没有通知权限,会调用多个show方法导致多个Toast出现

- AndroidUtilCode 的版本:utilcodex 1.31.1
- 出现 Bug 的设备型号:小米系列
- 设备的 Android 版本:12

## 相关代码

Line 674 in ActivityToast.show() (com.blankj.utilcode.util.ToastUtils)

@Override
public void show(int duration) {
if (mToast == null) return;
if (!UtilsBridge.isAppForeground()) {
// try to use system toast
iToast = showSystemToast(duration);
return;
}
boolean hasAliveActivity = false;
for (final Activity activity : UtilsBridge.getActivityList()) { //此处循环引发问题
if (!UtilsBridge.isActivityAlive(activity)) {
continue;
}
if (!hasAliveActivity) {
hasAliveActivity = true;
iToast = showWithActivityWindow(activity, duration); //如果有多个可见活动
} else {
showWithActivityView(activity, sShowingIndex, true); //这两个show方法都会被调用
}
}
if (hasAliveActivity) {
registerLifecycleCallback();
UtilsBridge.runOnUiThreadDelayed(new Runnable() {
@Override
public void run() {
cancel();
}
}, duration == Toast.LENGTH_SHORT ? 2000 : 3500);

++sShowingIndex;
} else {
// try to use system toast
iToast = showSystemToast(duration);
}
}

## 异常堆栈

```
put the stack of crash here
```

## 截图

![IMG_20230602_103318](https://github.com/Blankj/AndroidUtilCode/assets/17513196/08a4f573-5559-4aed-b93e-2a84edf7d306)

如果有的话请添加屏幕截图以帮助解释问题。

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.