質問

JavaScriptファイルをWebViewに使用してページ全体をロードするWebサイトをロードします。Webビューにページをロードするたびに、

でいくつかのメモリが増加しました

設定>アプリ>実行

も、WebViewをリリースするときにもメモリを解放しません。

私はWebViewでリソースをキャッシュしていません。しかし、私がメモリを分析するために楽器を使用したとき、それは私が解放されないメモリにリソースがキャッシュされていることを示しています。 私のコードは参照のためのここにあります:

    super.onCreate(savedInstanceState);
    setContentView(R.layout.webview);
    Intent in = getIntent();
    String page_url = in.getStringExtra("link");
    Log.i("display","url :"+page_url);
    if(deleteDatabase("webview.db") && deleteDatabase("webviewCache.db")){
        Toast.makeText(this, "Delete Webvie data base successfully",Toast.LENGTH_SHORT).show();
    }
    webview = (WebView) findViewById(R.id.webpage);
    webview.getSettings().setJavaScriptEnabled(true);
    webview.setWebViewClient(new WebViewClient());
    webview.getSettings().setLoadWithOverviewMode(true);
    webview.getSettings().setAppCacheEnabled(false);
    webview.loadUrl(page_url);
    webview.clearHistory();
    webview.clearFormData();
    webview.clearCache(true);
.

誰かが私に欠けているところを私に案内してください。WebViewへのメモリロードを最適化する方法は?

事前にありがとうございました。

役に立ちましたか?

解決

WebViewは複雑なUIウィジェットであり、使用中に大きなメモリを消費します。Andriod 4.4の前に、webview.freememory()APIは、実際にシーンの背後にあるメモリを使用しているものに応じて、役立つ可能性があります。

WebViewを終了してwebview.destroy()を呼び出してビュー階層から切り離して、一部のメモリは再生され、それをビュー階層から切り離します。

Android 4.4メモリ管理はWebView内でより自動であり、システムがロードされているときにWebViewがメモリを解放し、ontrimMemory( http://developer.android.com/reference/android/content/componentCallbacks2.html#ontrimMemory(int))。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top