Android,保持 View

标签 android view android-context orientation-changes

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

现在我已经将网络部分实现为一项服务,它自行构建和保留所有 View 。创建 Activity 时,网络部分将其内容 View 设置为上次接收的 View 。

这很简单,不需要重新创建所有 View 层次结构并保存所有状态。

但存在问题 - 我可以在服务上下文中创建 View ,我可以在 Activity 启动之间保留它们,可以在销毁和创建 Activity 时取消绑定(bind)和重新绑定(bind) View 吗?但有些 View 需要 Activity 上下文(例如 Spinner,它创建弹出对话框)。

那么,有什么方法可以在创建后更改 View 的上下文吗?

我是 android 编程的新手,所以可能有一些更好的方法来做到这一点(同样,任务是 - 在 Activity 被销毁和重新创建时保持 View 层次结构和所有状态,当屏幕旋转发生时,示例)。

最佳答案

我坚信“我已经将网络部分实现为一项服务,它自行构建和保留所有 View 。”是错误的。

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

关于Android,保持 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4751338/

相关文章:

Android GLES20.glBlendEquation 不工作?

android - 使用 alpha 动画更改 View 颜色

Android 翻译动画进度回调

android - Android View ID 必须是唯一的吗?

java - Android ViewGroup.setScaleX() 导致 View 被裁剪

ios - 选项卡更改时 View 会更改大小

html - ruby rails : Adding a second custom view to a controller (Rails 3)

java - 类如何从其包含复合类的父类(扩展 Activity)引用变量?

在 Activity 以外的类中使用的 Android Context

sqlite - Nullpointer database.open(), getwritabledatabase