关闭另一个活动后如何停止重新加载android webview活动

时间:2018-10-15 04:30:26

标签: java android webview onresume

我有一个android webview应用程序,有3个以上的不同活动,我的问题是当我午餐新活动并使用finish()关闭它时,主要的webview活动将再次刷新。当我不想要它时,是否可以阻止它刷新,而仅在我想要它的活动上刷新呢? 我关注了几篇文章,但在cannot resolve symbol FragmentIdentifier和其他文章中遇到了错误。这是链接Prevent 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);
       }
    }
}

我的webview应用

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);
}

我在下面存储了最后一个网址

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

1 个答案:

答案 0 :(得分:1)

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

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

    sharedPreferences.putBoolean(“活动完成”,true);

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