Activity生命週期和啟動模式
阿新 • • 發佈:2019-02-05
Activity的生命週期都很熟知,但一些特殊情況下是走的哪些方法呢?
最普通的,第一次啟動一個Activity onCreat ---onStart---onResume
開啟新的Activity或切換的桌面:onPause ----onStop(如果新的Activity採用了透明主題,那麼當前Activity不會呼叫onStop)
再回到Activity時:onRestart---onStart---onResume
按Back鍵:onPause---onStop---onDestroy
注意:在當前Activity啟動新的Activity時,首先呼叫前Activity的onPause然後新Activity執行onCreat--onStart---onResum,然後舊Activity執行onStop
系統配置發生變化導致Activity銷燬(旋轉螢幕),這是在銷燬時可以呼叫onSaveInstanceState並存儲一定資訊傳遞,在onRestoreInstanceState中獲取
Activity啟動模式:
singleTop:棧頂複用,系統呼叫Activity的onNewIntent方法
singleTask:棧內複用(具有cleanTop效果)
singleInstance:棧內複用+單獨位於一個任務棧中
Activity的(TaskAffinity引數)預設所需任務棧名字都是該應用包名
應用A啟動應用B的Activity C(allowTaskReparenting 為true) C在A 的任務棧中,再啟動B,C被會受到B的任務棧中。