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

时间:2013-03-20 14:01:20

标签: android android-activity background

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

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

请建议只有在app来到前台时才能回电。

提前致谢。

4 个答案:

答案 0 :(得分:1)

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

即:

  private boolean  isForeground;

onResume() BaseactivityisForeground = true onPause()Baseactivity方法isForeground = false

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

答案 1 :(得分:1)

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

声明一个将维持状态的类

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()

答案 2 :(得分:0)

没有框架提供的方法来执行此操作。我在这里描述了我自己的解决方案:https://stackoverflow.com/a/14734761/1207921

答案 3 :(得分:0)

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