1

我的应用程序包含两部分:网络部分和 GUI。它的工作方式有点像浏览器——用户从服务器请求一些信息,服务器发回一些代表某些视图的数据,然后 GUI 显示它。

现在我已经将网络部分实现为服务,它自己构建和保存所有视图。创建活动时,网络部分将其内容视图设置为最后收到的视图。

这很简单,无需重新创建所有视图层次结构并保存所有状态。

但是有一个问题——我可以在服务上下文中创建视图,我可以在活动启动之间保留它们,当活动被销毁和创建时可以取消绑定和重新绑定视图吗?但有些视图需要 Activity 上下文(例如 Spinner,它会创建弹出对话框)。

那么,有没有办法在创建后更改视图的上下文?

我是 android 编程的新手,所以可能有更好的方法来做到这一点(同样,任务是 - 保持视图层次结构和活动被破坏和重新创建时的所有状态,例如,当屏幕旋转发生时)。

4

1 回答 1

1

我坚信“我已经将网络部分实现为服务,它自己构建并保留所有视图。 ”你走错了路。

它是Activity唯一旨在拥有/管理视图层次结构的。所以 anActivity应该询问 a Service(或通过某种方式通知Service)要显示数据,然后只更新其视图。是的,在某些情况下它需要状态管理,但你得到的好处是——它只是按预期工作而没有任何黑客攻击。换句话说 - 不要试图欺骗操作系统,而是尝试与 Android 的最佳实践相对应。

于 2011-01-21T08:43:33.327 回答