在
DisplaySettings.java (packages\apps\settings\src\com\android\settings):
的
public boolean onPreferenceChange(Preference preference, Object objValue)
中
if (KEY_SCREEN_TIMEOUT.equals(key)) {
int value = Integer.parseInt((String) objValue);
try {
Settings.System.putInt(getContentResolver(), SCREEN_OFF_TIMEOUT, value);
} catch (NumberFormatException e) {
Log.e(TAG, "could not persist screen timeout setting", e);
}
}
中的Settings.System.putInt(getContentResolver(), SCREEN_OFF_TIMEOUT, value);将超时到数值保存,然后在
在这里会用观察器获取timeout到时间作为锁屏时间
PhoneWindowManager.java (frameworks\base\policy\src\com\android\internal\policy\impl):
中的
public void updateSettings()
// use screen off timeout setting as the timeout for the lockscreen
mLockScreenTimeout = Settings.System.getInt(resolver, Settings.System.SCREEN_OFF_TIMEOUT, 0);
取出
下面的
public void userActivity() {
synchronized (mScreenLockTimeout) {
if (mLockScreenTimerActive) {
// reset the timer
mHandler.removeCallbacks(mScreenLockTimeout);
mHandler.postDelayed(mScreenLockTimeout, mLockScreenTimeout);
}
}
}
设置生效。
2、
在DisplaySettings.java到onCreat方法中,通过
ListPreference screenTimeoutPreference = (ListPreference) findPreference(KEY_SCREEN_TIMEOUT);
screenTimeoutPreference.setValue(String.valueOf(Settings.System.getInt(
resolver, SCREEN_OFF_TIMEOUT, FALLBACK_SCREEN_TIMEOUT_VALUE)));
screenTimeoutPreference.setOnPreferenceChangeListener(this);
找到xml文件描述到timeout到显示字符串列表和每项列表到值。
在Display_settings.xml (packages\apps\settings\res\xml): 中
android:key="screen_timeout"
android:title="@string/screen_timeout"
android:summary="@string/screen_timeout_summary"
android:persistent="false"
android:entries="@array/screen_timeout_entries"
android:entryValues="@array/screen_timeout_values" />
部分说明来各个部分引用到值,我们关心entries和entryValues。
Arrays.xml (packages\apps\settings\res\values-zh-rcn):
Never turn off
15 seconds
30 seconds
1 minute
2 minutes
5 minutes
10 minutes
30 minutes
7200000
15000
30000
60000
120000
300000
600000
1800000
|