课后练习
一、单项选择题
每题只有一个正确答案。
-
登录页面中,使用 ConstraintLayout 的主要作用是( )。
A. 自动发送网络请求
B. 根据约束关系定位控件,适应不同屏幕尺寸
C. 将用户名保存到本地
D. 解析接口返回的 JSON 数据
-
用户点击登录按钮后,首先应完成的处理是( )。
A. 保存 token
B. 跳转到主页面
C. 校验用户名、密码和用户协议状态
D. 获取用户信息
-
下列关于用户协议校验的说法,正确的是( )。
A. 未勾选用户协议时,不应发送登录请求
B. 用户协议只在注册功能中校验
C. 用户协议状态应由服务端在登录成功后判断
D. 用户协议未勾选时仍可先获取用户信息
-
在本单元中,负责发送 HTTP 登录请求的库是( )。
A. Data Binding
B. LiveData
C. Lottie
D. OkHttp
-
接口外层响应类设计为泛型类的主要原因是( )。
A. 所有接口的请求方式都相同
B. 不同接口的
data字段类型不同,而code和msg字段可以复用C. Gson 只能解析泛型数据
D. 泛型类可以让服务端自动省略
msg字段 -
登录请求开始后显示加载对话框,主要用于( )。
A. 显示用户密码
B. 替代登录结果提示
C. 表明请求正在处理,并减少重复点击提交
D. 将网络请求改为本地请求
-
登录成功后,在进入主页面前还需要获取用户信息,主要目的是( )。
A. 将当前账号的资料保存到本地,供后续页面使用
B. 再次校验用户输入的密码
C. 重新创建登录页面布局
D. 删除本地登录凭证
-
AccountManager 的职责应是( )。
A. 绘制登录页面中的控件
B. 发起登录和用户信息网络请求
C. 控制加载动画的播放
D. 保存、读取和清除本地账号数据
-
下列处理方式符合账号数据保护要求的是( )。
A. 将密码写入日志,便于排查问题
B. 将完整 token 显示在 Toast 中
C. 密码只用于本次请求,不保存到本地
D. 将用户信息截图发送到 AI 工具分析
-
应用再次启动时,判断是否直接进入主页面所依据的数据是( )。
A. 本地是否保存了用户信息
B. 登录按钮的背景颜色
C. 输入框中是否保留用户名
D. 用户协议是否已勾选
二、主观题
-
简述登录按钮被点击后,从输入校验到进入主页面的主要处理流程。
-
登录接口请求结束后,还要继续获取用户信息。加载对话框应在什么情况下关闭?如果只在全部请求成功后关闭,会出现什么问题?
三、参考答案
| 题号 | 答案 | 考查内容 |
|---|---|---|
| 1 | B | ConstraintLayout 的约束定位方式 |
| 2 | C | 登录请求前的输入校验顺序 |
| 3 | A | 用户协议校验规则 |
| 4 | D | OkHttp 的网络请求职责 |
| 5 | B | 统一响应结构与泛型 data 字段 |
| 6 | C | 加载状态与重复提交控制 |
| 7 | A | 登录成功后的用户信息保存 |
| 8 | D | AccountManager 的本地数据职责 |
| 9 | C | 密码和登录凭证的安全处理 |
| 10 | A | 登录状态恢复 |
主观题参考要点:
-
依次校验用户名、密码和协议勾选状态;校验通过后显示加载对话框并发送登录请求;账号验证通过后获取用户信息;关闭加载对话框,保存用户资料和登录凭证,进入主页面。输入校验不通过时直接提示;任一请求失败时,关闭加载对话框并留在登录页提示原因。
-
登录失败时立即关闭;登录成功时继续显示,直到用户信息请求结束,无论成功或失败都要关闭。请求或解析异常按失败结果处理。如果只在全部请求成功后关闭,请求失败时对话框会一直显示,用户无法修改输入并重试。