外观
调用 startActivity 返回是否说明目标界面已经显示?
标准回答
不能这样理解。startActivity 发出的是启动请求,普通启动接口返回时,系统可能已经完成了同步阶段的检查和任务决策,但目标进程创建、生命周期执行、布局绘制和送显仍可能继续进行。我要判断启动完成,会分别检查启动请求、Activity 状态、窗口首帧和实际呈现时间。把 startActivity 包在主线程 Handler.post 中,只是把请求推迟到当前消息之后执行,不能自动减少系统启动耗时,也不能证明界面已经显示。
延伸追问
NEW_TASK 改变任务选择行为,并不等于开启新进程或开启新线程;它也不是通用的启动优化开关。
内容来源
- Android Framework 知识手册 · 原条目
1-3