我希望能够在许多HTML页面之间滑动而不会出现明显的延迟。为此,我想在加载应用程序后的后台或onCreate()中将所有页面加载到单独的WebView中。我在这里使用代码:Looking for Android ViewFlipper Example with Multiple WebViews但是在doInBackground()中尝试创建WebViews时遇到了错误,这与需要在主线程中创建WebViews有关。所以,我只是在onCreate()中创建了WebViews。
但是,此示例仅使用三个HTML页面。我想加载最多300个。除了硬编码300个WebView对象之外,最好的方法是什么?
答案 0 :(得分:2)
您应该重新考虑为什么需要这样做,将这么多对象缓存到内存中绝不是一个好主意。用户在一次会话期间永远不会遍历所有300个页面,因此您将浪费资源加载许多不必要的WebViews
。
如果您需要加载Webviews
而没有延迟,则应考虑使用ViewPager。它非常适合您的需求,Android开发人员网站提供了一份教程,帮助您准确完成here。
ViewPager
甚至允许您设置一次缓存的页数。如果您需要预加载页面,可以使用setOffscreenPageLimit方法设置应提前加载的页数。
答案 1 :(得分:1)
您可以在将HTML / DATA加载到webview之前加载它,因此至少它不必去网络获取内容
此外,您可以设置ViewPager加载的当前索引的距离