三星Galaxy S3上没有显示Toast(最新更新4.1.2)

Tob*_*erg 8 android toast galaxy samsung-mobile

我有一个以下面的方式显示的祝酒词:

Toast.makeText(context, "The message", Toast.LENGTH_LONG).show();
Run Code Online (Sandbox Code Playgroud)

我绝对肯定我正在从UI线程显示吐司,我可以补充一点,它适用于许多设备,包括Galaxy S3的旧版更新,但在最新更新后,我的吐司都没有显示.

有没有其他人经历过这个并有解决方案?

Tob*_*erg 11

在较新的Android手机中,"应用程序设置"中有一个"显示通知"复选框,出于某种原因,如果禁用通知,它也会禁用Toasts.这里已经报道了这个问题:

http://code.google.com/p/android/issues/detail?id=35013

但是看一下源代码:

https://android.googlesource.com/platform/frameworks/base/+/refs/heads/master/services/java/com/android/server/NotificationManagerService.java

似乎它可能是故意的:

114行:

private static final boolean ENABLE_BLOCKED_TOASTS = true;
Run Code Online (Sandbox Code Playgroud)

693-707行:

final boolean isSystemToast = ("android".equals(pkg));
if (ENABLE_BLOCKED_TOASTS && !isSystemToast && !areNotificationsEnabledForPackageInt(pkg))     {
    Slog.e(TAG, "Suppressing toast from package " + pkg + " by user request.");
    return;
}
Run Code Online (Sandbox Code Playgroud)

114行:

private static final boolean ENABLE_BLOCKED_TOASTS = true;
Run Code Online (Sandbox Code Playgroud)


Rag*_*ood 5

由于OP在过去24小时内没有出现过,我将发布在Android开发人员谷歌集团的一个帖子上找到的解决方案.

问题是,Show Notifications在"设置"中未选中此应用的选项(这在较新版本的Android中可能会出现).这不仅可以防止在通知栏中显示通知,还可以阻止显示祝酒词.

这里已经打开一个bug .