2

私はアプリでwebViewに取り組んでおり、ボタンが押されるとwebviewがロードするコンテンツが変更されます(前後の2つのボタン、WebViewのコンテンツが変更されるだけです)。しかし、3〜4回押すとハングし始め、logcatには何も印刷されません。ボタンは、15〜20秒間押されたままになり、次のデータがロードされます。

私はこれらを使用してwebview.dbとキャッシュをクリアしました:-

context.this.deleteDatabase("webview.db");
context.this.deleteDatabase("webviewCache.db");

webView.getSettings().setRenderPriority(RenderPriority.HIGH);
webView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);

しかし、それでもハングします。どうすればスピードアップできますか?助けてください。

更新しました:

   public void setWebView(String QuestionParent,String QuestionNumber)
    {


        WebSettings webSettings = questionWeb.getSettings();

        webSettings.setDefaultFontSize(24);

        questionWeb.getSettings().setRenderPriority(RenderPriority.HIGH);
        questionWeb.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);


        questionWeb.loadDataWithBaseURL("",integralParse.htmlParse(questionCode,"mnt/sdcard/faData/"+QuestionParent+"/"+QuestionNumber),"text/html","UTF-8","");
    }

私はボタンを押すときにこの方法を使用しています。integerParse.htmlParse()メソッドはhtmlテキストを返します。

4

1 に答える 1

5

webViewナビゲーションを適切に処理していますか?公式ドキュメントでこのチュートリアルを参照してください。

https://developer.android.com/guide/webapps/webview.html#HandlingNavigation

loadData()を使用しているだけの場合は、次のようにマニフェストファイルでハードウェアアクセラレーションをオンに設定してみてください。

android:hardwareAccelerated="true"

アプリケーションレベルで、つまりAndroidManifest.xmlファイルのタグに追加します

この時点以降、それは実際にはデバイスによって異なります。ハイエンドデバイスを使用している場合、画像はすばやくレンダリングされます。そうでない場合、webViewはwebkitハードウェアアクセラレーションを使用しているため、時間がかかります。これは、デバイスの構成によって異なります。

それでも速度が必要な場合は、Webビューなしで完全にネイティブなアプリを作成してみてください。すべてがバターのように滑らかになります。Webkitも、HTMLも、はるかに優れた制御もありません。

幸運を :-)

于 2012-10-05T05:39:03.667 に答える