Android中Activity和task,活动亲和力,启动模式,活动状态以及生命周期,激活钝化
Activity和task:
 android通過保持所有activity在同一個task中來維護用戶的經歷-典型是在launcher選擇的
 應用,棧頂活動是交互活動,back后,pop棧,即使涉及多個實例活動,不會重新管理,只有pop和push
 ?task:
 ?task是活動的棧,task的值是作為整體設置給root activity的.
?activity:
 ?一個task中的所有的activity作為整體進行移動.
?activity和task的關系,以及同一task內activity的行為可通過intent對象的flag標記和清單文件的activity元素
 ?進行控制.請求和相應都有一個說法.
?Intent flag如下:
 ?FLAG_ACTIVITY_NEW_TASK
 ?FLAG_ACTIVITY_CLEAR_TOP
 ?FLAG_ACTIVITY_RESET_TASK_IF_NEEDED
 ?FLAG_ACTIVITY_SINGLE_TOP
?<activity>屬性有
 ?taskAffinity
 ?launchMode
 ?allowTaskReparenting
 ?alwaysRetainTaskState
 ?finishOnTaskLaunch
?Affinity和task:親和力和task
 ?默認時,應用程序所有activity彼此具有一個Affinity-屬于同一任務.但可設置單獨的activity的Affinity(通過
 ?<activity>屬性),不同應用程序中的activity也可以定義相同的Affinity,或者同一應用,不同Affinity.
 ?Affinity生效需要兩個條件:Intent對象包含FLAG_ACTIVITY_NEW_TASK標記和allowTaskReparenting=true
 ??FLAG_ACTIVITY_NEW_TASK:
 ??如果含該標記,系統查找不同的任務來容納新的activity,通常是新建task.但不一定這樣,如果已經存在具有同一
 ??Affinity的task,新的activity會在那個task中啟動,若沒有,開始新的任務.
??allowTaskReparenting
 ??若設置該屬性為true,該activity可以彼task回到前臺時有開始時的task移動到那個task上.
launch Mode:
 ?standard:每次訪問實例化新的對象.
 ?singleTop:如果目標activity在棧頂,直接返回.否則實例化.
?singleTask:是單例,通常設置給root activity.由此開啟的activity具有相同的taskid
 ?singleInstance:是單例,通常設置給root activity.由此開啟的activity具有不同的taskid
?task:是activity的棧,
?
activity狀態:
 ?激活態:棧頂,正在交互
 ?暫停態:可見,被不完全覆蓋
 ?停止態:不可見,完全覆蓋.
activity生命周期循環:
 ?完整周期:onCreate() ---> onDestroy()[停止態]
 ?可視周期:onStart() --> onStop();[暫停態]
 ?前臺周期:onResume()--->onPause();[激活態]
?onCreate() --- onStart()?? --- onResume()? --- onPause()? -- onStop? -- onDestory()
 ??????????????????????? |???????????????? |????????? |????|
 ??????|????? |-----<----????|
 ??????|------------<---- onRestart() -------------|
 active:激活
 deactive:鈍化
總結
以上是生活随笔為你收集整理的Android中Activity和task,活动亲和力,启动模式,活动状态以及生命周期,激活钝化的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 股票sw是什么意思的
- 下一篇: Android中BroadcastRec
