Android 碎碎记

1. onSaveInstanceState() 的启动时机

  • HOME 键
  • 长按 HOME 键选择其他应用程序(未证实,手机没有该功能)
  • 锁屏
  • 启动新的 Activity
  • 屏幕方向切换

2. 进程优先级比较

  1. 前台进程(FOREGROUND_APP)
  2. 可见进程(VISIBLE_APP)
  3. 次要服务进程(SECONDARY_SERVER)
  4. 后台进程(HIDDEN_APP)
  5. 内容供应节点(CONTENT_PROVIDER)
  6. 空进程(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 的引用;

你可能感兴趣的:(Android)