Activity

一:Android Activity 生命周期

正常:

1. onCreate  :  初始化工作(setContentView  加载资源,数据)(类似iOS的loadView)。

2. onStart  :  Activity  已经可见,但是不能交互(看不到),再后台(类似iOS的ViewDidLoad)。

3. onRestart  :  重新启动(不可见  -> 可见) (用户行为导致的  (类似iOS的ViewWillAppear,但是第一次不会调用)。

4. onResume :  Activity  已经可见,可以交互(看的见),显示前台(类似iOS的ViewDidAppear)。

5. onPause :  Activity 正在停止,不能做耗时操作(影响新的Activity显示)(类似iOS的ViewWillDisAppear),

6. onStop  :  Activity  即将停止,  不能做耗时操作(ViewDidDisAppear)。

7. onDestroy:  Activity 即将销毁(释放资源)(dealloc)。

注意

case1 :第一次启动: onCreate -》onStart -》onResume。

case2 :打开新的Activity或者切回桌面 onPause -》onStop。 (如果Activity 为透明 onStop 不会调用)。

case3 :回到原来的Activity  onRestart -》onStart  -》onResume。

case4 :点击back onPause -》onStop -》onDestroy

case5 :onStart ,onStop  从可见角度区分,

case6 :onResume, onPause  从是否前台角度区分,

case7 :A  -》B ,A 的onPause 要比 B 的onResume 先执行。

Activity 启动

Instrumenttation  +  ActivityThread  +  ActivityMangerService(AWS)

启动请求 -》 Intrumenttation  -》Binder  -》AWS (维护着ActivityStack ,负责栈内的状态同步,ActivityThread  状态同步,完成生命周期方法)。

异常:

1.  系统配置发生改变导致Activity 被杀死。(横竖屏切换)

onPause -》onStop -》onDestroy  -》 onSaveInstanceState(保存当前activity的Bundle对象) -》onRestoreInstanceState &&  onCreate (判断是否被重建,onRestoreInstanceState 在onCreate之后)

保存数据流程

  onSaveInstanceState -》Window  -》顶级容器保存数据 -》通知子元素保存数据。

2.  资源不足导致低优先级Activity 被杀死。

高:  前台Activity - 正在和用户交互的Activity  优先级最高。

中:  可见非前台Activity(弹出一个对话框)。

低:  已经被暂停的Activity(执行了onStop)。

3  不想被创建 

    android:configChanges =  "orientation"

二 :Android  Activity LauchMode  启动模式

1  启动模式

1。 standard  标准模式 FLAG _ACTIVITY_NEW_TASK  ABCDD

2。 singleTop  位于栈顶  Activity 不会从新创建 并且调用(onNewIntent)ABCD

3。 singleTask  单例模式  调用(onNewIntent)  ABCD ->ACDB

4。  singleInstance  单例模式  只能独立位于一个新的任务栈  不创建新的。除非任务栈被销毁

2  Activity  Flag

singleTask  ->  FLAG_ACTIVITY_NEW_TASK

singleTop  ->  FLAG_ACTIVITY_SINGLE_TOP

FLAG_ACTIVITY_CLEAR_TOP  当前ACTIVITY  上面都弹出(standard) 拿出弹出(singleTask)

3  隐式启动 action category data 完全匹配

action 区分大小写

你可能感兴趣的:(Activity)