2013-01-14 44 views
8

我有顯示在下面的方式舉杯:吐司沒有在三星Galaxy S3(最新更新4.1.2)所示

Toast.makeText(context, "The message", Toast.LENGTH_LONG).show(); 

我絕對肯定我顯示從UI線程敬酒,我可以補充說,它適用於很多設備,包括Galaxy S3的舊版更新,但是在最新的更新之後,我的敬酒都沒有顯示出來。

有沒有其他人經歷過這個,並有一個解決方案?

+2

你確定這個代碼實際上是被稱爲?有其他可能會影響它的其他內容嗎? –

+0

也許你應該顯示你的完整代碼.. –

回答

10

在較新的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; 

線條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; 
} 

行114:

private static final boolean ENABLE_BLOCKED_TOASTS = true; 
5

由於OP在過去24小時內沒有出現,我將在android-developers Google Group上發佈在thread上找到的解決方案。

問題在於該應用程序的Show Notifications選項在設置中未選中(這可能適用於較新版本的Android)。這不僅會阻止在通知欄中顯示通知,還會阻止顯示敬酒。

此錯誤已打開here