Activity的生命周期
工作一年多,发现很多基础的东西都忘了,抽空在学习一哈
- Activity的生命周期,总共分为:onCreate(), onStart(), onRestart(), onResume(),onStop()以及onDestory().一个Activity一般情况下是如何切换的呢,文字表达太麻烦,直接上图:
- 那么当新的Acticity被启动时,原Activity的流程,如下:
即当新启动一个Activity时,原Acticity会先执行onPause(),然后新的Activity才会被创建.在源码中的ActivityStack.java中resumeTopActivityInnerLocked方法中说的很清楚
// If the flag RESUME_WHILE_PAUSING is set, then continue to schedule the previous activity
// to be paused, while at the same time resuming the new resume activity only if the
// previous activity can't go into Pip since we want to give Pip activities a chance to
// enter Pip before resuming the next activity.
final boolean resumeWhilePausing = (next.info.flags & FLAG_RESUME_WHILE_PAUSING) != 0
&& !lastResumedCanPip;
boolean pausing = mStackSupervisor.pauseBackStacks(userLeaving, next, false);
if (mResumedActivity != null) {
if (DEBUG_STATES) Slog.d(TAG_STATES,
"resumeTopActivityLocked: Pausing " + mResumedActivity);
pausing |= startPausingLocked(userLeaving, false, next, false);
}