【问题标题】:WebView, Splash Screen and performanceWebView、闪屏和性能
【发布时间】:2011-05-27 00:13:34
【问题描述】:

我在从网络加载内容的 Activity 中有 WebView。当 WebView 开始加载时,我会启动另一个活动来充当启动画面,当 WebView 完成加载时我会隐藏它。

我在测试时发现,添加启动画面时加载相同网页的时间比不添加时要长。所以我假设当包含 WebView 的活动进入后台时,有一个网络线程的优先级下降。如何控制该线程以保持 WebView 快速?

我找到了 WebSettings 类的 setRenderPriority 方法,我不确定它的作用,也不知道它所说的“渲染线程”是什么。我试过了:

getSettings().setRenderPriority(WebSettings.RenderPriority.HIGH); 

但它对加载时间没有任何影响。

感谢任何可以帮助我的人。

【问题讨论】:

  • 我不确定这是否有直接帮助,但将渲染优先级设置为高可能会对 Droid X 等某些设备产生不利影响。我在 Droid X 上的应用程序遇到了持续的强制关闭/等待报告和 Droid 2 在对我的代码进行此更改后。 HTC EVO 和三星 Galaxy 等其他设备运行良好。所以,我建议你不要这样做。

标签: android webview


【解决方案1】:

我不是直接回答你的问题,而是建议一个替代方案......启动另一个活动来简单地提供启动屏幕可能会相当昂贵。相反,您可能会考虑扩展包含您的 WebView 的布局以将 RelativeLayout 放置在 WebView 的级别,并使您的 WebView 成为该布局的子级。此外,您可以在同一个 RelativeLayout 中放置一个 ImageView(或您需要的任何启动画面),并且您可以在不希望它显示时将其可见性设置为不可见。

【讨论】:

  • 嗯,我主要使用了一个新的活动来获得它附带的过渡动画,所以用户感觉他正在从一个屏幕切换到另一个屏幕并且不知道他只是在浏览一个网站。我刚刚遇到了 ViewFlipper 类,我会研究它,希望它不会降低 Webview 的加载速度。 (但即使这样解决了问题我还是对原问题感兴趣。如何直接控制一个WebView的网络线程以及senRenderPriority方法是干什么用的。)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-24
  • 1970-01-01
  • 1970-01-01
  • 2020-09-01
  • 1970-01-01
相关资源
最近更新 更多