私はフラグメントViewPagerを持っており、各フラグメントの内側にはXMLで定義されたWebViewがあります。WebView自体が破壊される
私はアセットから文字列にHTMLファイルを読み込んでいます(何かを置き換える必要があります)。その後、StringをWebWiewにロードします。 正常に動作し、WebViewに正しい内容が表示されます。
これは私のコードです:
webWiew.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
// show webview when page has fully loaded
view.setVisibility(View.VISIBLE);
}
});
webWidget.getSettings().setJavaScriptEnabled(true);
String html = Helper.getHtmlAsString(getContext());
if (html != null) {
html = html.replace(PLACEHOLDER, String.valueOf(pageId));
webWidget.loadDataWithBaseURL(HTML_WIDGET_PATH, html, "text/html", "utf-8", null);
}
しかし、ページ間をスクロールしたときに、私は次のエラー(WebViewのはまだコンテンツを表示することに注意してください)を取得:
D/webviewglue: nativeDestroy view: 0x1d8b9d0
D/webview: webview.destroy() is called.
D/webview: java.lang.Throwable: webview.destroy() callstack
at android.webkit.WebView.destroy(WebView.java:2449)
at android.webkit.WebView$10.run(WebView.java:5335)
at android.os.Handler.handleCallback(Handler.java:605)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4507)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:978)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:745)
at dalvik.system.NativeStart.main(Native Method)
を私はWebViewのを破壊していないですどこにでも私はwebview.destroy()
と呼んでいません。
どのように私はこのエラーを回避することができますか?あなたのフラグメントのonDestroy()メソッド
protected void onDestroy()
{
yourwebViewPlaceholder.removeView(yourWebView);
yourWebView.removeAllViews();
yourWebView.destroy();
}
これはあなたのために働くなら、私を知ってみましょうにこのコードを入れしようと
フラグメントビューアビューアを使用していますが、フラグメントが破棄されている可能性がありますか? –
はい、おそらくそうですが、ウェブビュー後にシステムがクリーニングをしてはいけませんか? – fanboy555