Blankj / Blankj/AndroidUtilCode

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

Abierto
#1,772 1 comentario 0 reacciones 1 asignado Reclamado por @Blankj Ver en GitHub
bug
Lenguaje dominante
Java
Estrellas
33.6k
Forks
10.6k
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

## 描述 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)

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

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.