【问题标题】:Android preload a url into WebView while splashscreen is showingAndroid 在显示启动画面时将 url 预加载到 WebView
【发布时间】:2011-09-29 08:14:32
【问题描述】:

我有一个带有启动画面的应用程序,几秒钟后它会打开具有 WebView 的主要活动。问题是,只有这样,主要活动才会开始加载 URL,这有时需要几秒钟。双重等待似乎很愚蠢。但是,我尝试预加载 WebView 的尝试并没有那么成功。

问题的本质是闪屏和主要活动是两个不同的活动,WebView是资源绑定(布局)到主要活动。复制 WebView (webview2=webview1) 不起作用,不足为奇。

建议?

【问题讨论】:

    标签: android android-activity webview


    【解决方案1】:

    按照这些步骤..

    1) 在屏幕上设置初始布局。

    2) 启动一个新线程,在这个线程中膨胀一个包含 webview 的布局。

    3) 在 webView 中加载 url。将 webview Client 设置为 webview 以了解您的页面加载何时完成。 There is a quick example。覆盖 onPageFinished。

    4) 现在中断线程并将这个膨胀的视图传递给下一个活动,并将其设置为 setContentView(inflatedView);

    谢谢。

    【讨论】:

    • 我正在尝试您的建议,但是,当我尝试在线程内充气时,它会引发一个钝异常(二进制 XML 文件第 15 行:错误充气类 android.webkit.WebView)。稍后在堆栈跟踪中,提供更多信息的是:java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare() 以前从未见过..
    • 制作一个处理程序并从该线程调用一个处理程序。除了 UI 线程之外,您无法从线程访问 UI 元素。或者在ui线程中做所有事情。您将不得不寻找解决方法。
    • 现在很好用。该页面仍然需要很长时间才能加载。 ;)
    • 我有一个问题:在第 4 点)你如何将膨胀的视图从一个活动传递到下一个活动?
    【解决方案2】:

    在您的 web 视图上方使用闪屏进行布局,并在 X 秒后将视图设置为 View.GONE。如果您在 onCreate 上加载 webview,它将在启动画面后面加载,并且当启动画面消失时,您已经加载了 Webview :)

    【讨论】:

      猜你喜欢
      • 2018-07-16
      • 2015-10-07
      • 1970-01-01
      • 2023-04-06
      • 2012-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多