【问题标题】:Disabling notifications also disables toast on Oreo禁用通知也会禁用奥利奥上的吐司
【发布时间】:2018-06-07 13:31:54
【问题描述】:

在 Android O 上,当为应用禁用通知时,不仅针对特定频道(或多个频道)而且针对整个应用,应用内的所有 Toast 消息都将不再显示。这是正常的吗? 顺便说一句,我没有错过 .show() 调用或其他任何东西,即使在 Android

Toast.makeText(getContext(), "TOAST", Toast.LENGTH_LONG).show();

有谁知道这是一个错误还是奥利奥更改的一部分? 我在Android website 上没有看到任何具体提及。

编辑

另一个问题here 不一样,因为它要求的是Toast 的替代品。我在问这是一个已知的错误还是奥利奥变化的一部分。似乎正确的答案是雷德曼的答案和他发布的问题跟踪器上的谷歌问题。这是一个似乎尚未解决的错误。 (其他问题未提及该问题)。

【问题讨论】:

标签: android


【解决方案1】:

这正常吗?

是的,这是正常行为(或者可能是 android 中的错误)。

最好使用SnackBar 而不是Toast

在 Google 问题跟踪器 https://issuetracker.google.com/issues/36951147 上查看此内容

【讨论】:

  • 你怎么知道这是正常的而不是bug?为什么奥利奥和以前版本的行为不同?
  • 是的,我也遇到了 7+ 版本,不得不浪费半天时间检查出了什么问题
  • 那个问题已经有 6 年了,但看起来问题完全一样。我本以为现在已经解决了,似乎没有。
  • @VicJordan 检查所有 cmets 和日期
  • @Redman 是的,你说得对,API 级别 26 和 27 存在问题。
【解决方案2】:

我在 8.1 模拟器上进行了测试,即使关闭通知 IF compileSdkVersion 25,Toast 也能正常工作。如果您使用API level 26 or 27 编译您的应用程序,则会出现问题。

Toast.makeText(getApplicationContext(), "TOAST", Toast.LENGTH_LONG).show();

环境详情:

模拟器 - Pixel 2 API 27(Android 8.1 Google API)

解决方法:

  1. Snackbar(Redman 已经提出)
  2. toast-compat图书馆

【讨论】:

  • 了解 Toast 在使用 compileSdkVersion 25 运行时实际显示的有用信息。为此 +1,谢谢。
【解决方案3】:

Toast 在 9.0 中也被禁用。看起来这不是一个错误,因为用户现在拥有比以前更具体的通知设置。

在 Android Pie 9.0 上,我在日志中得到了这个:

E/NotificationService: Suppressing toast from package com.xxxxxxxxxxx.xxxxx by user request.

【讨论】:

    【解决方案4】:

    将“getContext()”或任何内容替换为“getApplicationContext()”。例如:Toast.makeText(getApplicationContext(), "TOAST", Toast.LENGTH_LONG).show();用于活动。

    Toast.makeText(getActivity().getApplicationContext(), "TOAST", Toast.LENGTH_LONG).show();
    

    用于片段。享受

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-10-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多