【问题标题】:How to cancel all Toasts when app is in background?应用程序在后台时如何取消所有 Toast?
【发布时间】:2019-10-02 06:21:33
【问题描述】:
我在我的应用程序中使用Toasts 向用户显示来自 API/本地错误的错误。但是如果用户在后台并且Toast 消息显示在他的 Messenger 应用程序上(例如)某些请求失败,那就很烦人了。有什么方法可以在 App 处于后台时立即禁用所有显示的 toast?
所有 toast 都是在我的 Application 类中的整个 App 的一个函数中创建的。
【问题讨论】:
-
你为什么不使用lifeCycle 并检查你的应用程序是否在后台,如果有任何活动在后台然后不显示吐司?这有意义吗?勒兰更多关于lifecycle
标签:
android
android-toast
【解决方案1】:
在您的 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 方法之前检查它。