Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/312.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
Java 活动生命周期。用户始终处于脱机状态_Java_Android - Fatal编程技术网

Java 活动生命周期。用户始终处于脱机状态

Java 活动生命周期。用户始终处于脱机状态,java,android,Java,Android,当应用程序在前台运行时,联机将设置为true;当应用程序在后台运行时,联机将设置为false。我在所有活动中都有此代码: @Override protected void onStart() { super.onStart(); if (mAuth.getCurrentUser() != null) { mUserDatabase.child("online").setValue("true"); } } @Override protected

当应用程序在前台运行时,联机将设置为true;当应用程序在后台运行时,联机将设置为false。我在所有活动中都有此代码:

    @Override
protected void onStart() {
    super.onStart();
    if (mAuth.getCurrentUser() != null) {
        mUserDatabase.child("online").setValue("true");
    }
}

@Override
protected void onStop() {
    super.onStop();
    if (mAuth.getCurrentUser() != null) {
        mUserDatabase.child("online").setValue("false");
    }
}
问题是,当我尝试移动到另一个活动时,联机总是设置为false。为什么它总是假的

当应用程序暂停时,按下home(主页)按钮时,应触发Pause(暂停)方法,当您再次打开应用程序时,应触发onPostResume(恢复后)方法

您的代码应该如下所示:

@Override
protected void onPause()
{
    super.onPause();

    // set false

}



@Override
protected void onPostResume()
{
    super.onPostResume();

    // set true

}

希望它能帮助你

我很困惑。这就像新活动的onStart首先被调用,然后是旧活动的onDestroy。问题是,当我尝试移动到另一个活动时,online总是设置为false。为什么它总是假的?因为活动生命周期。在我发送给你的链接中阅读关于onStop的内容。当活动不再是activeShow代码时,会调用onStop。如果您初始化或将值赋给mAuth,顺便说一句,mAuth在您的情况下是静态变量还是非静态变量?@sontruongit我将其赋给onCreate,它是非静态变量。如果我尝试在onDestroy中实现它,我将遇到另一个问题。当应用程序在后台运行时,联机将保留到true@xxxQDAxxx,请让我知道你所说的应用程序在后台运行是什么意思,应用程序从不在后台运行,其进程do runapp是最小化的不是windows或linux或桌面应用程序来最小化窗口。。,它的android应用程序可以是打开的,用户在应用程序中做什么,也可以是关闭的。这意味着当你点击手机主屏幕时,应用程序只会最小化,而不会完全关闭应用程序。返回应用程序后,您将继续进行最后一项活动