我有一个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();
}
答案 0 :(得分:1)
由于您也将网址加载到onResume()
中,因此当您的其他活动关闭并且webview活动成为焦点时,它将被调用。在这里,您有2个选择。
在完成第二项活动之前,请在共享的首选项中或在静态变量中保存一些布尔值,例如。
sharedPreferences.putBoolean(“活动完成”,true);
然后在加载网址之前,在onResume()方法中检查上述布尔变量值。请记住,最好根据需要将值重新设置为false,最好是在您的第一个活动onStop()方法中