今天测试我的一个程序,程序老被ForceColsed.我的程序是这样的,通过MainActivity进入主界面,主界面的一些UI数据是通过
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
prefs.getString("pre_now_week", null)
取得的。
问题来了,当我把程序安装在手机上时,通过主界面,进去,ForceClosed了。最后我通过
Log.e("care", prefs.getString(prefer_key, "is null"));
打印出,is null.意思是根本没有些数据。
最后,我明白了SharedPreferences即然是用户首选项 ,所以应该在主程序运行之前被调用,这时
<EditTextPreference
android:key="pre_now_week"
android:title="默认值为:1"
android:summary="单击可进行修改"
android:defaultValue="1"
/>
android:defaultValue="1"
默认值才会生效。
但奇怪的是,运行过PreferenceActivity的时候,我把程序重新安装,是不需要预先PreferenceActivity再MainActivity的,而是MainActivity再PreferenceActivity是不会报错的。