当Android应用程序从后台进入前台时,如何获得回调?
如何在android中从后台到前台了解应用程序状态 我从一个Baseactivity调用扩展了我的活动,Baseactivity类扩展了android活动。 我将代码appcomeForeground()放入onRestart()上的基本活动中,但当我们将活动导航到前台应用程序时,它也会调用 请建议只有在应用程序出现时才能获得回拨的方法当Android应用程序从后台进入前台时,如何获得回调?,android,android-activity,background,Android,Android Activity,Background,如何在android中从后台到前台了解应用程序状态 我从一个Baseactivity调用扩展了我的活动,Baseactivity类扩展了android活动。 我将代码appcomeForeground()放入onRestart()上的基本活动中,但当我们将活动导航到前台应用程序时,它也会调用 请建议只有在应用程序出现时才能获得回拨的方法 提前感谢。没有提供框架来实现这一点。我在这里描述了自己的解决方案:在Baseactivity中维护一个布尔变量 i、 e: 在Baseactivity的onRe
提前感谢。没有提供框架来实现这一点。我在这里描述了自己的解决方案:在Baseactivity中维护一个布尔变量 i、 e: 在
Baseactivity的onResume()内部
并且在onPause()中Baseactivity的method
makeisForeground=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()
ApplicationState.activityPaused()
在应用程序调用的每个活动的onPause
方法中
ApplicationState.activityResumed()
ApplicationState.activityPaused()
现在,您可以随时通过调用来检查应用程序的前台/后台状态
ApplicationState.isActivityVisible()
另一种解决方法是调用putExtra
,让用户在应用程序的活动之间导航。如果onRestart
/onResume
未收到此额外信息,则该应用程序刚刚进入前台。您是否尝试在所有活动中保持单例状态?可能重复感谢回复。但这是行不通的。isForeground仍为false.:(try,private static boolean isForeground;onRestart im检查isForeground标志,但其返回false。通过在Baseactivity的onRestart()方法中添加log.d(“Baseactivity”,“onRestart called”);确保每次都执行它。im使用ApplicationState.isActivityVisible()在on start和restart中也使用了此方法,但始终为false。我正在使用此方法..并且工作正常。检查您当前是否使用了activityresumed和ActivityAused方法。我在我的基本活动类中使用了此方法。并在子onStart()和onRestart()中检查isActivityVIsible。所有情况都是错误的。你必须在所有活动中使用这些方法。否则你将无法获得准确的结果。我有20-30个活动,并且都是从基本活动扩展而来。这就是为什么我在基本活动中实施了这些方法。请建议。。。