Android6.0 重启机器, 最近启动任务源码分析

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

猜你喜欢

转载自blog.csdn.net/qq_27256793/article/details/80442640