1. onSaveInstanceState() 的启动时机
- HOME 键
- 长按 HOME 键选择其他应用程序(未证实,手机没有该功能)
- 锁屏
- 启动新的 Activity
- 屏幕方向切换
2. 进程优先级比较
- 前台进程(FOREGROUND_APP)
- 可见进程(VISIBLE_APP)
- 次要服务进程(SECONDARY_SERVER)
- 后台进程(HIDDEN_APP)
- 内容供应节点(CONTENT_PROVIDER)
- 空进程(EMPTY_APP)
3. AsyncTask 内部结构
AsyncTask 中有两个线程池(SerialExecutor 和 THREAD_POOL_EXECUTOR)和一个 Handler(InternalHandler),其中线程池 SerialExecutor 用于任务的排队,而线程池 THREAD_POOL_EXECUTOR 用于真正地执行任务(串行执行),InternalHandler 用于将执行环境从线程池切换到主线程;
补充:
· AsyncTask 中的两个线程池分析
· executeOnExecutor() 可以配置任意 ExecutorService
4. Android MVC 与 MVP
MVC 对应于 Android:
M:Model,V:Layout,C:Activity
缺陷:
1. Activity 同时要处理 Layout 的逻辑,过于复杂;
2. Model 和 View 之间存在耦合;
MVP 对应于 Android:
M:Model,V:Activity,C:Presenter
其中,Activity 持有 Presenter 的引用,Presenter 持有 Model 和 Activity 的引用;