我有一个toast,它的显示方式如下:
Toast.makeText(context, "The message", Toast.LENGTH_LONG).show();
我绝对确定我正在显示来自UI线程的toast,我可以补充说,它适用于许多设备,包括Galaxy S3的旧更新,但在最新更新之后,我的toast都没有显示。
有没有其他人经历过这种情况并有解决方案?
在较新的Android手机中,在应用程序设置中有一个"显示通知"复选框,由于某种原因,如果通知被禁用,它也会禁用toast。此问题已在此处报告:
http://code.google.com/p/android/issues/detail?id=35013但是查看源代码:
https://android.googlesource.com/platform/frameworks/base/参+//头/主/服务/java/com/android/server/NotificationManagerService.java
这似乎是故意的:
第114行:
private static final boolean ENABLE_BLOCKED_TOASTS = true;
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;
}
由于OP在过去的24小时内没有出现,我将在android开发者Google组的一个线程中发布解决方案。
问题是该应用程序的Show Notifications
选项在设置中未被选中(这在较新的Android版本中是可能的)。这不仅可以防止在通知栏中显示通知,还可以防止显示祝酒词。
此错误已在此处打开