首页 文章

当Android应用程序从后台出现时,如何获得回调?

提问于
浏览
2

如何在android中了解应用程序状态背景到前台?

我从一个Baseactivity调用扩展了我的活动,而Baseactivity类扩展了android Activity . 我将代码appcomeForeground()放入onRestart()的基本活动中,但是当我们将活动导入到我们的前台应用程序时它也会调用它 .

请建议只有当app来到前台时才能回电 .

提前致谢 .

4 回答

  • 0

    要检查您的应用程序是否在前台的后台,您可以执行以下操作 .

    声明一个将维持状态的类

    public class ApplicationState {
        public static boolean isActivityVisible() {
            return activityVisible;
        }
    
        public static void activityResumed() {
            activityVisible = true;
        }
    
        public static void activityPaused() {
            activityVisible = false;
        }
    
        private volatile static boolean activityVisible;
    }
    

    在应用程序调用的每个活动的 onResume 方法中

    ApplicationState.activityResumed()
    

    并且在 onPause 方法中,您的应用程序调用的每个活动

    ApplicationState.activityPaused()
    

    现在,您可以随时通过调用来检查应用程序的前景/后台状态

    ApplicationState.isActivityVisible()
    
  • 1

    在Baseactivity中维护一个布尔变量,

    即:

    private boolean  isForeground;
    

    onResume()onResume()isForeground = trueBaseactivityonPause() 方法 isForeground = false

    每当您想知道状态时,请检查该布尔变量并相应地应用您的其他逻辑 .

  • 0

    's no framework-provided way to do this. I'在这里描述了我自己的解决方案:https://stackoverflow.com/a/14734761/1207921

  • 1

    另一种解决方法是在意图上调用 putExtra ,让用户在应用程序的活动之间导航 . 如果 onRestart / onResume 没有收到此Extra,则该应用程序刚刚进入前台 .

相关问题