10.6.3 读取Settings配置
读取Settings配置由retrieveSettings方法完成,代码如下:
private void retrieveSettings(){
//通过Context运行环境获得访问Content Provider的ContentResolver
final ContentResolver resolver=mContext.getContentResolver();
//读取Settings中设置的需要调试的App包名
String debugApp=Settings.System.getString(
resolver, Settings.System.DEBUG_APP);
//读取Settings的wait_for_debugger配置
boolean waitForDebugger=Settings.System.getInt(
resolver, Settings.System.WAIT_FOR_DEBUGGER,0)!=0;
//读取Settings的always_finish_activities配置
boolean alwaysFinishActivities=Settings.System.getInt(
resolver, Settings.System.ALWAYS_FINISH_ACTIVITIES,0)!=0;
Configuration configuration=new Configuration();
//读取Settings中用户偏好设置信息,目前只有font_scale信息
Settings.System.getConfiguration(resolver, configuration);
//将上述Settings配置信息存入ActivityManagerService
synchronized(this){
mDebugApp=mOrigDebugApp=debugApp;
mWaitForDebugger=mOrigWaitForDebugger=waitForDebugger;
mAlwaysFinishActivities=alwaysFinishActivities;
updateConfigurationLocked(configuration, null, false, true);
}
}
retrieveSettings主要从Settings中读取了以下四种配置信息。
debug_app:需要调试的应用程序包名。
wait_for_debugger:如果设置为1,当启动debug_app时,该应用会等待调试器;如果设置为0则正常运行。
always_finish_activities:如果设置为1,Activity Manager会直接结束那些不再需要的Activity;如果设置为0,则遵循正常的生命周期。
font_scale:与字体大小相关的配置。
这些配置信息最终都存入ActivityManagerService的相关成员变量中。接下来进入第四部分内容。