如何在应用程序处于后台时取消所有 Toasts?

How to cancel all Toasts when app is in background?

我在我的应用程序中使用 Toasts 向用户显示来自 API/local 错误的错误。但是,如果用户在后台并且 Toast 消息显示在他的 Messenger 应用程序(例如)上,表明某些请求失败,这很烦人。 App在后台时,有什么方法可以立即禁用所有显示的toasts吗?

我的 Application class.

中的整个应用程序的所有 toast 都是在一个函数中创建的

在您的 MasterActivity 中设置一个变量(如果您有一个,或者在您的 MainActivity 中设置),如下所示:

  public static boolean IS_IN_FOREGROUND = false;

并像这样在您的生命周期中设置它:

  @Override
  protected void onResume() {
    super.onResume();
    IS_IN_FOREGROUND = true;
  }

  @Override
  protected void onPause() {
    super.onPause();
    IS_IN_FOREGROUND = false;
  }

然后在调用 toast 方法之前检查它。