原文:
zh.annas-archive.org/md5/0ffc7f04a3e132a02fea5cc6b989228c译者:飞龙
第十三章:Activity生命周期
应用程序中的每一个Activity都在 App 进程中运行,但每个Activity也都有自己的生命周期。这些方法是在Activity即将改变状态时由平台触发的,例如,当用户暂时退出Activity去使用另一个Activity(无论它是在同一应用程序中,还是另一个应用程序中)时。Fragment对象也受到生命周期的约束,虽然它主要遵循与Activity生命周期相同的模式,但它也有从其父Activity中“附加”和“分离”的概念。
下面的流程图详细解释了Activity的生命周期:
第十四章:测试您的知识答案
本附录包含章节中出现的所有“测试您的知识”测验的答案。
第二章 - 设计表单屏幕
-
设计表单屏幕时,您应该首先考虑什么?
- 您需要从用户那里获取的数据 - 这将确定所需的字段并将指导您的其他决策
-
材料设计中的标准间距增量是多少?
- 8 密度无关像素
-
ConstraintLayout、ViewPager和CardView是支持 API 的一部分。这意味着什么?- 如果您使用它们,它们的字节码必须包含在您的应用程序中
-
当构建新的布局时,您的根小部件应该是以下哪一个?
- 对您布局来说有意义的简单小部件 - 其他选项可能提供更多功能,但会消耗更多系统资源
第三章 - 执行操作
-
实现事件处理器的最佳方式是什么?
- 没有一个 - 您需要考虑每个案例,并选择最合适的模式
-
改变用户界面小部件状态的任何方法的条件是什么?
- 它们必须从主线程调用
-
作为事件处理程序部分运行的代码应满足以下哪些条件?
- 只与用户界面交互 - 其他任何操作都应该在工作线程上完成
-
当从另一个
Activity请求数据时,数据通过以下哪种方式返回?- 您的
Activity对象上的回调
- 您的
第四章 - 组合用户界面
-
当开发布局子类时,以下哪个选项是最好的?
- 避免将 ID 属性分配给子小部件 - ID 属性可能导致应用程序中出现意外的副作用
-
以下哪项适用于在
onCreate中传递给Activity的Bundle?- 它在
onSaveInstanceState方法中填充
- 它在
-
当
Adapter的数据发生变化时,以下哪项会发生?- 它应该通知任何附加的监听器
-
片段和
View类应满足以下哪些条件?- 它们应该从
Activity将数据和状态推入它们
- 它们应该从
第五章 - 将数据绑定到小部件
-
Android 的数据绑定框架遵循哪种类型的绑定?
- 模型-视图(单向)绑定
-
数据绑定布局具有必须满足以下哪些条件的变量?
- 任何 Java 对象
-
以下哪个功能属于数据绑定表达式?
- 它们是一种特殊的表达式语言
-
要触发数据绑定用户界面的更新,您必须执行以下哪项?
- 对
Binding对象进行更改,使其可以观察
- 对
第六章 - 存储和检索数据
-
Android 的 Room API 提供了以下哪些?
- SQLite 之上的轻量级 API
-
从 Room DAO 返回
LiveData需要您执行以下哪项?- 您观察它以获取更改以检索数据
-
不返回
LiveData的数据库查询应该做什么?- 应在工作线程上运行
-
为 Room 编写更新方法需要列出哪些?
- 接口上的一个
@Update方法,接受一个Entity对象
- 接口上的一个
第七章 - 创建概览屏幕
-
RecyclerView的实例将为以下哪个创建一个View实例?- 屏幕上可见的每个数据项
-
当将观察者附加到
LiveData时,你需要做以下哪些?- 提供一个有效的
LifecycleOwner
- 提供一个有效的
-
概览/仪表板屏幕应该具备以下哪些功能?
- 它们应该首先显示最重要的信息概览
-
ViewHolder类被RecyclerView用来做什么?- 提高数据绑定性能
-
当使用
LiveData对象引用多个Fragment对象使用的数据时,以下哪个是正确的?Fragment实例必须共享相同的LiveData引用以查看更改
第八章 - 设计材料布局
-
应该使用高度来表示以下哪个?
- 为了在平面布局上方选择性地突出显示一个项目
-
CoordinatorLayout可以用来协调以下哪些之间的移动和大小?- 任何其直接子小部件
-
为了以向后兼容的方式更改小部件的高度,你需要做以下提到的哪个?
- 使用
ViewCompat类
- 使用
-
应该在以下哪种情况下使用
GridLayout类?- 为了沿着网格线布局屏幕
第九章 - 高效导航
-
当使用底部标签进行导航时,以下哪个很重要?
- 标签的重要性大致相等
-
在以下哪种情况下,顶部标签比底部标签更受欢迎?
- 当用户不需要频繁导航时
-
在以下哪种情况下可以使用片段进行导航?
- 任何用户在应用程序内导航的时候
-
当用户在导航抽屉中选择一个项目时,以下哪个是正确的?
- 应该以编程方式关闭抽屉
第十章 - 使概览更加完善
-
在单个
RecyclerView实例中,你可以使用多少种不同的视图类型?- 任何数量
-
当使用
DiffUtil时,以下哪个适用于你正在比较的数据?- 它通过回调公开
-
当向
RecyclerView添加分隔符时,你应该做以下哪个?- 使它们成为数据集中的独立项目
第十一章 - 精炼你的设计
-
当选择配色方案时,强调颜色应该具备以下哪些特征?
- 它与主颜色相辅相成
-
动态生成调色板应该满足以下哪些条件?
- 应该在后台线程上执行
-
在你的应用程序中动画布局时,应该牢记以下哪个?
- 它们不应该阻碍或分散用户实现目标
-
可以使用自定义样式来定义以下哪个?
- 布局资源文件中任何属性的默认值
第十二章 - 定制小部件和布局
-
当渲染自定义部件的专业图形时,你需要做以下哪个?
- 覆盖
onDraw方法
- 覆盖
-
应该在哪里创建用于在
onDraw中渲染的图形原语实例,如Drawable、Paint和Path?- 任何不影响
onDraw的直接地方
- 任何不影响
-
布局过程中涉及的两个阶段是什么?
- 测量然后布局
-
当绘制一个
Drawable对象时,你需要做以下哪一项?- 传递一个有效的
Canvas对象
- 传递一个有效的
-
要告诉平台一个小部件需要重新绘制自己(从主线程),你使用以下哪一个?
View.invalidate()
1657

被折叠的 条评论
为什么被折叠?



