我有一个 android webview 应用程序,有超过 3 个不同的活动,我的问题是当我午餐新活动并使用 关闭它时finish(),主要的 webview 活动将再次刷新。是否可以在我不希望它刷新时阻止它刷新并仅刷新我希望它刷新的活动?我关注了几个帖子,但在cannot resolve symbol FragmentIdentifier其他帖子上出现错误。这是返回应用程序和按下关闭按钮时防止重新加载活动/ Webview 的链接下面是我在 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);}我在下面存储最后一个网址 protected void onPause() { super.onPause(); SharedPreferences prefs = getSharedPreferences(getPackageName(), MODE_PRIVATE); SharedPreferences.Editor edit = prefs.edit(); edit.putString("lastUrl", FSwebview.getUrl()); edit.commit(); }
1 回答
犯罪嫌疑人X
TA贡献2080条经验 获得超4个赞
由于您也在加载您的网址onResume()
,因此当您的其他活动关闭并且 webview 活动成为焦点时,它将被调用。在这里,您有 2 个选择。
仅在onCreate()方法中加载您的网址,因为在您的活动重新启动之前它不会再次被调用。
在完成第二个活动之前,在共享首选项中或作为静态变量保存一些布尔值,例如。
sharedPreferences.putBoolean("活动完成",true);
然后在您的 onResume() 方法中,在加载您的 url 之前检查上述布尔变量值。请记住根据您的需要将值设置回 false,最好在您的第一个活动 onStop() 方法中
添加回答
举报
0/150
提交
取消