如何在android中了解应用程序状态背景到前台?
我从一个Baseactivity调用扩展了我的活动,而Baseactivity类扩展了android Activity . 我将代码appcomeForeground()放入onRestart()的基本活动中,但是当我们将活动导入到我们的前台应用程序时它也会调用它 .
请建议只有当app来到前台时才能回电 .
提前致谢 .
要检查您的应用程序是否在前台的后台,您可以执行以下操作 .
声明一个将维持状态的类
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 方法中
onResume
ApplicationState.activityResumed()
并且在 onPause 方法中,您的应用程序调用的每个活动
onPause
ApplicationState.activityPaused()
现在,您可以随时通过调用来检查应用程序的前景/后台状态
ApplicationState.isActivityVisible()
在Baseactivity中维护一个布尔变量,
即:
private boolean isForeground;
onResume() 的 onResume() 内 isForeground = true 和 Baseactivity 内 onPause() 方法 isForeground = false
onResume()
isForeground = true
Baseactivity
onPause()
isForeground = false
每当您想知道状态时,请检查该布尔变量并相应地应用您的其他逻辑 .
's no framework-provided way to do this. I'在这里描述了我自己的解决方案:https://stackoverflow.com/a/14734761/1207921
另一种解决方法是在意图上调用 putExtra ,让用户在应用程序的活动之间导航 . 如果 onRestart / onResume 没有收到此Extra,则该应用程序刚刚进入前台 .
putExtra
onRestart
4 回答
要检查您的应用程序是否在前台的后台,您可以执行以下操作 .
声明一个将维持状态的类
在应用程序调用的每个活动的
onResume
方法中并且在
onPause
方法中,您的应用程序调用的每个活动现在,您可以随时通过调用来检查应用程序的前景/后台状态
在Baseactivity中维护一个布尔变量,
即:
onResume()
的onResume()
内isForeground = true
和Baseactivity
内onPause()
方法isForeground = false
每当您想知道状态时,请检查该布尔变量并相应地应用您的其他逻辑 .
's no framework-provided way to do this. I'在这里描述了我自己的解决方案:https://stackoverflow.com/a/14734761/1207921
另一种解决方法是在意图上调用
putExtra
,让用户在应用程序的活动之间导航 . 如果onRestart
/onResume
没有收到此Extra,则该应用程序刚刚进入前台 .