У меня есть тост, который отображается следующим образом:
Toast.makeText(context, "The message", Toast.LENGTH_LONG).show();
Я абсолютно уверен, что я показываю тост из потока пользовательского интерфейса, и могу добавить, что он работал отлично для многих устройств, включая более старые обновления Galaxy S3 , но после последнего обновления ни один из моих тостов не отображается.
Кто-нибудь еще испытал это и получил решение?
В новых Android-телефонах есть флажок «Показывать оповещения» в настройках приложения, и по какой-либо причине, если уведомления отключены, он также отключает тосты. О проблеме сообщается здесь:
http://code.google.com/p/android/issues/detail?id=35013
Но глядя на исходный код:
Кажется, что это может быть преднамеренным:
Строка 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;
Поскольку OP не существует за последние 24 часа, я опубликую решение, которое было найдено в потоке разработчиков Android Google .
Проблема заключалась в том, что опция « Show Notifications
для этого приложения» не была отмечена в настройках (это возможно в новых версиях Android). Это не только предотвращает показ уведомлений в панели уведомлений, но также предотвращает показ тостов.
Здесь была обнаружена ошибка.