@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 如果内容存在,则使用缓存,即使已过期(例如,历史导航) 如果它不在缓存中,则从网络加载。与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,然后使用私有静态 String convertStreamToString(InputStream is) 将该流转换为 String 并将该流保存到文件中,稍后您可以将该内容加载到 webview...稍后阅读。
更新2:
或者你可以做一些Java序列化的东西......不记得这是否适用于android xD
发现 Java 序列化 API 的秘密http://java.sun.com/developer/technicalArticles/Programming/serialization/