2011-02-14 149 views
1

我写了一个iOS应用程序,我想将它移植到android。这个应用程序是一个 前端工作的基于Web的计时系统。不幸的是, 该系统没有API,所以我使用xpath 在javascript中查询屏幕。在iOS中,我只需要加载此页面一次 ,因为我可以完全控制UIWebView的实例何时被销毁 。 iOS应用程序只有3个使用案例,每个使用案例分成Android 活动: 登录 查看所有报告时间的列表 报告新时间。 使用幼稚的方法,当我在视图之间切换时,我的android视图(包括WebView,我需要 用于与计时系统交互)将被销毁并重新创建 。如果每次切换活动时必须重新加载 WebView,我的应用程序将显得非常慢。 是否可以在多个 活动之间共享WebView实例?我知道我可以将launchMode设置为singleInstance,但理想情况下,最好允许单独的实例,以便后面的 按钮可以正常工作。在活动之间共享WebView

回答

1

根据suggestion on from Eric Burke at STL Mobile Dev,我能够在我的活动之间分享我的WebView。我在清单中指定了一个自定义应用程序,并在Application中创建了WebView。应用程序是一个上下文,只要应用程序一直存在,所有Activity对象都可以以这种方式共享WebView。

+4

阅读此答案的人需要了解你真的在做什么。大多数开发人员使用“WebView”向用户显示HTML。为此,“WebView”需要像其他任何小部件一样由“Activity”拥有和显示。就你而言,你正在使用`WebView`不是为了显示Web内容,而是作为HTTP检索和Javascript引擎。这没有什么不妥,你的方法将达到这个目的。但是,对于大多数Android开发人员来说,这不是“在多个活动之间共享WebView实例”的一种方式。 – CommonsWare 2011-02-21 01:48:43