课后练习

一、单项选择题

每题只有一个正确答案。

  1. 登录页面中,使用 ConstraintLayout 的主要作用是( )。

    A. 自动发送网络请求

    B. 根据约束关系定位控件,适应不同屏幕尺寸

    C. 将用户名保存到本地

    D. 解析接口返回的 JSON 数据

  2. 用户点击登录按钮后,首先应完成的处理是( )。

    A. 保存 token

    B. 跳转到主页面

    C. 校验用户名、密码和用户协议状态

    D. 获取用户信息

  3. 下列关于用户协议校验的说法,正确的是( )。

    A. 未勾选用户协议时,不应发送登录请求

    B. 用户协议只在注册功能中校验

    C. 用户协议状态应由服务端在登录成功后判断

    D. 用户协议未勾选时仍可先获取用户信息

  4. 在本单元中,负责发送 HTTP 登录请求的库是( )。

    A. Data Binding

    B. LiveData

    C. Lottie

    D. OkHttp

  5. 接口外层响应类设计为泛型类的主要原因是( )。

    A. 所有接口的请求方式都相同

    B. 不同接口的 data 字段类型不同,而 code 和 msg 字段可以复用

    C. Gson 只能解析泛型数据

    D. 泛型类可以让服务端自动省略 msg 字段

  6. 登录请求开始后显示加载对话框,主要用于( )。

    A. 显示用户密码

    B. 替代登录结果提示

    C. 表明请求正在处理,并减少重复点击提交

    D. 将网络请求改为本地请求

  7. 登录成功后,在进入主页面前还需要获取用户信息,主要目的是( )。

    A. 将当前账号的资料保存到本地,供后续页面使用

    B. 再次校验用户输入的密码

    C. 重新创建登录页面布局

    D. 删除本地登录凭证

  8. AccountManager 的职责应是( )。

    A. 绘制登录页面中的控件

    B. 发起登录和用户信息网络请求

    C. 控制加载动画的播放

    D. 保存、读取和清除本地账号数据

  9. 下列处理方式符合账号数据保护要求的是( )。

    A. 将密码写入日志,便于排查问题

    B. 将完整 token 显示在 Toast 中

    C. 密码只用于本次请求,不保存到本地

    D. 将用户信息截图发送到 AI 工具分析

  10. 应用再次启动时,判断是否直接进入主页面所依据的数据是( )。

    A. 本地是否保存了用户信息

    B. 登录按钮的背景颜色

    C. 输入框中是否保留用户名

    D. 用户协议是否已勾选

二、主观题

  1. 简述登录按钮被点击后,从输入校验到进入主页面的主要处理流程。

  2. 登录接口请求结束后,还要继续获取用户信息。加载对话框应在什么情况下关闭?如果只在全部请求成功后关闭,会出现什么问题?

三、参考答案

题号答案考查内容
1BConstraintLayout 的约束定位方式
2C登录请求前的输入校验顺序
3A用户协议校验规则
4DOkHttp 的网络请求职责
5B统一响应结构与泛型 data 字段
6C加载状态与重复提交控制
7A登录成功后的用户信息保存
8DAccountManager 的本地数据职责
9C密码和登录凭证的安全处理
10A登录状态恢复

主观题参考要点:

  1. 依次校验用户名、密码和协议勾选状态;校验通过后显示加载对话框并发送登录请求;账号验证通过后获取用户信息;关闭加载对话框,保存用户资料和登录凭证,进入主页面。输入校验不通过时直接提示;任一请求失败时,关闭加载对话框并留在登录页提示原因。

  2. 登录失败时立即关闭;登录成功时继续显示,直到用户信息请求结束,无论成功或失败都要关闭。请求或解析异常按失败结果处理。如果只在全部请求成功后关闭,请求失败时对话框会一直显示,用户无法修改输入并重试。