如何在android中知道应用程序状态背景到前台?
我从一个 Baseactivity 调用扩展了我的活动,而 Baseactivity 类扩展了 android Activity。我将代码 appcomeForeground() 放入 onRestart() 上的基本活动中,但是当我们将活动导航到前台应用程序时也会调用它。
请建议仅在应用程序进入前台时才能回电的方法。
提前致谢。
如何在android中知道应用程序状态背景到前台?
我从一个 Baseactivity 调用扩展了我的活动,而 Baseactivity 类扩展了 android Activity。我将代码 appcomeForeground() 放入 onRestart() 上的基本活动中,但是当我们将活动导航到前台应用程序时也会调用它。
请建议仅在应用程序进入前台时才能回电的方法。
提前致谢。
在 Baseactivity 中维护一个布尔变量,
IE:
private boolean isForeground;
make的内部onResume()
和 Baseactivity
make的isForeground = true
内部onPause()
方法Baseactivity
isForeground = false
并且每当您想知道状态时,请检查该布尔变量并相应地应用您的进一步逻辑。
要检查您的应用程序是否在前台后台,您可以执行以下操作。
声明一个将维护状态的类
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()
没有框架提供的方法可以做到这一点。我在这里描述了我自己的解决方案:https ://stackoverflow.com/a/14734761/1207921
另一种解决方法是调用putExtra
允许用户在应用程序的活动之间导航的意图。如果onRestart
/onResume
没有收到此 Extra,则该应用程序刚刚进入前台。