如何在另一个 activity 关闭时停止 android webview activity 重新加载

How to stop android webview activity from reloading when another activity is closed

我有一个 android webview 应用程序,有超过 3 个不同的 activity 我的问题是当我午餐新 activity 并使用 finish() 关闭它时,主要webview activity 将再次刷新。是否可以在我不想要它时阻止它刷新并仅在我想要它的 activity 上刷新? 我关注了一些 post,但在 cannot resolve symbol FragmentIdentifier 和其他方面遇到了错误。这里是linkPrevent Reload Activity / Webview when go Back to app and when press the turn off button

下面是我在 onresume 方法中用来记住上次保存的内容 url。

protected void onResume() {
    super.onResume();
    //String message = getIntent().getStringExtra(FSMainActivity.FragmentIdentifier);
    if(FSwebview != null) {
        SharedPreferences r_prefs = getSharedPreferences(getPackageName(), MODE_PRIVATE);
        // String ssn = r_prefs.getString("sessionParameter","");
        String lastPage = r_prefs.getString("lastUrl", "");
        if(!lastPage.equals("")) {
            /*if (message == null || message.compareTo(FSMainActivity.showWebViewFragment) == 0) {
                if (!getSavedInstance()){
                    changeFragment(new WebViewFragment());
                }

            } else if (message.compareTo(FSMainActivity.showLoginFragment) == 0) {
                changeFragment(new LoginFragment());
        }*/
           appLoadUrl(lastPage, false);
       }else{
          appLoadUrl(APP_URL, false);
       }
    }
}

我的网络视图应用程序

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    WebView mWebView = new WebView(this);

    //now do whatever u want
    mWebView.getSettings().setJavaScriptEnabled(true);
    mWebView.setWebViewClient(new HelloWebViewClient());
    mWebView.loadUrl("https://example.com/index2.php");
    mWebView.setInitialScale(130);

    //finally
    setContentView(mWebView);
}

我存最后url下面

 protected void onPause() {
        super.onPause();
        SharedPreferences prefs = getSharedPreferences(getPackageName(), MODE_PRIVATE);
        SharedPreferences.Editor edit = prefs.edit();
        edit.putString("lastUrl", FSwebview.getUrl());
        edit.commit();
    }

由于您也在 onResume() 中加载您的网址,因此当您的其他 activity 关闭并且网络视图 activity 成为焦点时,它将被调用。这里有 2 个选择。

  1. 仅在 onCreate() 方法中加载您的网址,因为在 activity 重新启动之前不会再次调用它。
  2. 在完成第二个 activity 之前,在共享首选项中保存一些布尔值或作为静态变量,例如

    sharedPreferences.putBoolean("activity finished",真);

然后在您的 onResume() 方法中检查上述布尔变量值,然后再加载您的网址。请记住根据您的需要将值设置回 false,最好是在您的第一个 activity onStop() 方法中