如何在后台加载 WebViews 中的许多 (200-300) HTML 页面

How to load many (200-300) HTML pages in WebViews in background

我希望能够在多个 HTML 页面之间滑动而不会出现明显的延迟。为此,我想在加载应用程序后在后台或在 onCreate() 中将所有页面加载到单独的 WebView 中。我在这里使用代码:Looking for Android ViewFlipper Example with Multiple WebViews 但 运行 尝试在 doInBackground() 中创建 WebView 时出错,这与需要在主线程中创建 WebView 有关。因此,我只是在 onCreate() 中创建了 WebView。

但是,此示例仅使用三个 HTML 页。我想加载多达 300 个。除了硬编码 300 个 WebView 对象之外,最好的方法是什么?

你可以先加载HTML/DATA再加载到webview,这样至少不用去网络获取内容

此外,您还可以设置 ViewPager 加载的距离当前索引的距离

您应该重新考虑为什么需要这样做,将这么多对象缓存到内存中绝不是一个好主意。用户可能永远不会在一个会话期间浏览所有 300 个页面,因此您将浪费资源加载许多不必要的 WebViews

如果您需要无延迟地加载 Webviews,您应该考虑使用 ViewPager. It is perfectly suited for your needs and the Android developer site has a tutorial for exactly what you are trying to accomplish here

ViewPager 甚至允许您设置一次缓存多少页。如果您需要预加载页面,您可以使用 setOffscreenPageLimit 方法来设置应该提前加载多少页面。