如何在android中了解应用程序状态背景到前台?
我从一个Baseactivity调用扩展了我的活动,而Baseactivity类扩展了android Activity。 我将代码appcomeForeground()放入onRestart()的基本活动中,但是当我们将活动导入到前台应用程序时调用它。
请建议只有在app来到前台时才能回电。
提前致谢。
答案 0 :(得分:1)
在Baseactivity中维护一个布尔变量,
即:
private boolean isForeground;
onResume()
Baseactivity
内isForeground = 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,那么应用就会进入前台。