StateManager
StateManager中有个Stack<StateEntry> mStack,类似于ActivityManager中的ActivityStack。用于控制相册界面的窗口堆栈管理,成员为StateEntry类。再看startState这个函数:
public void startState(Class<? extends ActivityState> klass,
Bundle data) {
Log.v(TAG, "startState " + klass);
ActivityState state = null;
try {
// 用窗口类创建一个ActivityState实例
state = klass.newInstance();
} catch (Exception e) {
throw new AssertionError(e);
}
// 堆栈非空
if (!mStack.isEmpty()) {
// 获取栈顶ActivityState
ActivityState top = getTopState();
top.transitionOnNextPause(top.getClass(), klass,
StateTransitionAnimation.Transition.Incoming);
// 调用栈顶ActivityState的onPause
if