Android 当返回应用程序并按下关闭按钮时,防止重新加载活动/网络视图

Android 当返回应用程序并按下关闭按钮时,防止重新加载活动/网络视图,android,android-activity,android-fragments,android-ui,Android,Android Activity,Android Fragments,Android Ui,我在一个活动中有一个片段,在这个片段中我还有一个webview 问题:锁定屏幕并按关闭按钮解锁后,将重新创建我的活动或重新加载我的webview(不确定会发生什么情况) 切换设备中的应用程序时也会出现同样的问题 我试图更改配置更改和启动模式。以下是我在android清单文件中的部分活动: <activity android:name=".MainActivity" android:label="@string/app_name" a

我在一个活动中有一个片段,在这个片段中我还有一个webview

问题:锁定屏幕并按关闭按钮解锁后,将重新创建我的活动或重新加载我的webview(不确定会发生什么情况)

切换设备中的应用程序时也会出现同样的问题

我试图更改配置更改和启动模式。以下是我在android清单文件中的部分活动:

     <activity
        android:name=".MainActivity"
        android:label="@string/app_name"
        android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
        android:windowSoftInputMode="adjustResize"
        android:launchMode="singleTop"
        >
    </activity>
编辑:

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

    //Check if the user is authenticated onResume
    String message = getIntent().getStringExtra(MainActivity.FragmentIdentifier);

    if(message == null || message.compareTo(MainActivity.showWebViewFragment) == 0){
        changeFragment(new WebViewFragment());

    }else if (message.compareTo(MainActivity.showLoginFragment) == 0){
        changeFragment(new LoginFragment());
    }
}

任何想法或代码样本将不胜感激,谢谢

我想我应该处理这个实例并检查是否已经保存,否则我的onResume总是可以重新加载我的webview。这是我的新代码:

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

    //Check if the user is authenticated onResume
    String message = getIntent().getStringExtra(MainActivity.FragmentIdentifier);

    if (message == null || message.compareTo(MainActivity.showWebViewFragment) == 0) {

        /*
         Check if the instance is saved. If yes, is not necessary to create a new instance of the webview,
         otherwise will always reload.
        */
        if (!getSavedInstance()){
            changeFragment(new WebViewFragment());
        }

    } else if (message.compareTo(MainActivity.showLoginFragment) == 0) {
        changeFragment(new LoginFragment());
    }

}
我声明了一个新的全局变量

private Boolean savedInstance = false;
这是我的衣服

@Override
public void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    setSavedInstance(true);
}

public Boolean getSavedInstance() {
    return savedInstance;
}

public void setSavedInstance(Boolean instance_saved) {
    this.savedInstance = instance_saved;
}

你在活动onResume()中做什么吗?@Subham,是的。我用代码编辑
@Override
public void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    setSavedInstance(true);
}

public Boolean getSavedInstance() {
    return savedInstance;
}

public void setSavedInstance(Boolean instance_saved) {
    this.savedInstance = instance_saved;
}