3

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

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

请建议仅在应用程序进入前台时才能回电的方法。

提前致谢。

4

4 回答 4

1

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

IE:

  private boolean  isForeground;

make的内部onResume()Baseactivitymake的isForeground = true 内部onPause()方法BaseactivityisForeground = false

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

于 2013-03-20T14:11:38.653 回答
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()
于 2013-03-20T14:12:35.717 回答
0

没有框架提供的方法可以做到这一点。我在这里描述了我自己的解决方案:https ://stackoverflow.com/a/14734761/1207921

于 2013-03-20T14:09:26.940 回答
0

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

于 2013-03-20T14:29:42.683 回答