@yeradis(ネットワークが利用できない場合でも WebView コンテンツを保存して表示するにはどうすればよいですか? ):
おそらくキャッシュを使用するのが最善の方法です...そのためには、 http://developer.android.com/reference/android/webkit/WebSettings.htmlを確認する必要があります
「WebView の設定状態を管理します。WebView が最初に作成されると、一連のデフォルト設定が取得されます。これらのデフォルト設定は、getter 呼び出しから返されます。WebView.getSettings() から取得された WebSettings オブジェクトは、 WebView.WebView が破棄された場合、WebSettings のメソッド呼び出しは IllegalStateException をスローします。"
特に:
public static final int **LOAD_CACHE_ONLY**
以降: API レベル 1 ネットワークを使用せず、キャッシュからのみロードします。一緒に使うsetCacheMode(int). Constant Value: 3 (0x00000003)
または
public static final int **LOAD_CACHE_ELSE_NETWORK**
導入されたバージョン: API レベル 1 有効期限が切れていても、コンテンツが存在する場合はキャッシュを使用します (例: history nav)。キャッシュに存在しない場合は、ネットワークからロードします。一緒に使うsetCacheMode(int). Constant Value: 1 (0x00000001)
更新 1:
うーん、「すべての人生のくだらないコード」たとえば:
public static InputStream fetch(String url) throws MalformedURLException,
IOException {
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpGet request = new HttpGet(url);
HttpResponse response = httpClient.execute(request);
return response.getEntity().getContent();
}
private static String convertStreamToString(InputStream is)
throws IOException {
StringWriter writer = new StringWriter();
IOUtils.copy(is, writer, "UTF-8");
return writer.toString();
}
そのため、InputStream fetch(String url) で URL をフェッチし、そのストリームを private static String convertStreamToString(InputStream is) で String に変換して、そのストリームをファイルに保存し、後でそのコンテンツを webview にロードできます...後で読む。
アップデート2:
または、いくつかのJavaシリアライゼーションを実行できます...これがAndroid xDで機能するかどうかを思い出せません
Java Serialization API の秘密を発見してください http://java.sun.com/developer/technicalArticles/Programming/serialization/