我有webview用於顯示Disqus服務中的評論。這裏是片段代碼的一部分:恢復WebView的狀態
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View root = inflater.inflate(R.layout.fragment_coments, container, false);
mComentsView = (WebView)root.findViewById(R.id.coments_view);
String htmlComments = getHtmlComment(createId(), "androidaci");
mComentsView.getSettings().setJavaScriptEnabled(true);
mComentsView.setWebViewClient(new ComentsWebViewer(htmlComments));
mComentsView.setWebChromeClient(new WebChromeClient());
if(savedInstanceState != null){
Log.e("restoring", "state");
mComentsView.restoreState(savedInstanceState);
} else {
Log.e("loading", "website");
mComentsView.loadData(htmlComments, "text/html", null);
}
return root;
}
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
mComentsView.saveState(outState);
}
public String getHtmlComment(String idPost, String shortName) {
return "<div id='disqus_thread'></div>"
+ "<script type='text/javascript'>"
+ "var disqus_identifier = '"
+ idPost
+ "';"
+ "var disqus_shortname = '"
+ shortName
+ "';"
+ " (function() { var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;"
+ "dsq.src = 'http://' + disqus_shortname + '.disqus.com/embed.js';"
+ "(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq); })();"
+ "</script>";
}
問題是在輪換webview重新加載,我想知道爲什麼。我嘗試保存並恢復狀態,並在日誌中恢復狀態語句,但看起來它仍然在輪換更改時重新加載。我怎樣才能防止這種重新加載?
羅,還是一樣的結果 –