1. 程式人生 > >android 中activity的啟動模式是singleTask時清除activity的棧頂activity的生命週期小計

android 中activity的啟動模式是singleTask時清除activity的棧頂activity的生命週期小計

安卓開發中經常會涉及到activity啟動模式,當一個activity第singleTASK時 ,清除棧頂的activity的時候,位於棧頂的activity的生命週期是如何走完的呢?這裡做一個小計:

BaseActivity的 啟動模式是singleTask模式

   StandOneActivity

   StandTwoActivity

   StandThreeActivity 這三個activity的啟動模式都是標準模式,

 啟動的循序是 BaseActivity ->StandOneActivity->StandTwoActivity->StandThreeActivity

 生命週期如下:

 BaseActivity.onCreate()

                            onStart()

                                  onResume()

                                     onPuase()

                                         StandOneActivity.onCreate()

                                                                          onStart()

                                                                             onResume()

                                                                                onPause()

                                                                                   StandTwoActivity.onCreate()

                                                                                                                    onStart()

                                                                                                                        onResume()

                                                                                                                            onPause()

                                                                                                                               StandThreeActivity.onCreate()

                                                                                                                                                                   onStart()

                                                                                                                                                                      onResume()

                                                                                                                                                                          --------------這裡回到BaseActivity上

                                       StandOneActivity.onStop()

                                                                        onDestaory()

                                                                                 StandTwoActivity.onStop()

                                                                                                               onDestory()

                                                                                                                               StandThreeActivity.onPause()

                                                                                                                                                                    BaseActivity.onResume()

                                                                                                                                                                                              StandThreeActivity.onStop()

                                                                                                                                                                                                                                    onDestory()

總的來講,如果一個Activity的啟動模式是SinleTask,在銷燬棧內的其他Activity時 是從其棧頂的底部開始 一個一個的銷燬,直到棧頂的activity 走onPause(),然後啟動SingleTask的Activity,最後才銷燬棧頂的Activity,走onStop及onDestaory