Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当Android应用程序从后台进入前台时,如何获得回调?_Android_Android Activity_Background - Fatal编程技术网

当Android应用程序从后台进入前台时,如何获得回调?

当Android应用程序从后台进入前台时,如何获得回调?,android,android-activity,background,Android,Android Activity,Background,如何在android中从后台到前台了解应用程序状态 我从一个Baseactivity调用扩展了我的活动,Baseactivity类扩展了android活动。 我将代码appcomeForeground()放入onRestart()上的基本活动中,但当我们将活动导航到前台应用程序时,它也会调用 请建议只有在应用程序出现时才能获得回拨的方法 提前感谢。没有提供框架来实现这一点。我在这里描述了自己的解决方案:在Baseactivity中维护一个布尔变量 i、 e: 在Baseactivity的onRe

如何在android中从后台到前台了解应用程序状态

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

请建议只有在应用程序出现时才能获得回拨的方法


提前感谢。

没有提供框架来实现这一点。我在这里描述了自己的解决方案:

在Baseactivity中维护一个布尔变量

i、 e:

Baseactivity的
onResume()内部

并且在
onPause()中
Baseactivity的
method
make
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()
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个活动,并且都是从基本活动扩展而来。这就是为什么我在基本活动中实施了这些方法。请建议。。。