frameworks/base/services/core/java/com/android/server/am/ActivityManagerService.java:
public void systemReady(final Runnable goingCallback) {
synchronized(this) {
if (mSystemReady) {
// If we're done calling all the receivers, run the next "boot phase" passed in
// by the SystemServer
if (goingCallback != null) {
goingCallback.run();
}
return;
}
mLocalDeviceIdleController
= LocalServices.getService(DeviceIdleController.LocalService.class);
// Make sure we have the current profile info, since it is needed for
// security checks.
updateCurrentProfileIdsLocked();
mRecentTasks.clear();
mRecentTasks.addAll(mTaskPersister.restoreTasksLocked()); //mTaskPersister获取最近任务表,然后加入mRecentTasks
mRecentTasks.cleanupLocked(UserHandle.USER_ALL);
mTaskPersister.startPersisting();
//省略部分代码,保留关键部分
}
当重启系统的时候需要将上次保存的数据读取出来。用到的也是TaskPersister.java类中的restoreTasksLocked()方法。类所在位置:
frameworks/base/services/core/java/com/android/server/am/TaskPersister.java