我收到一些奇怪的影響後,我強制關閉我的應用程序。當完成()關閉應用程序時,一切都很好。我有一些變量保存在sharedPreferences中,所以當應用程序再次加載時,它可以將這些變量恢復到UI中。但是,如果我強制關閉應用程序,然後嘗試繼續它停止的地方,一些變量開始「行事滑稽」。我的意思是(在的onCreate)我檢查,看是否有串,從sharedPreferences加載,等於一個值(嘎吱嘎吱縮小版本):Android:SharedPreference錯誤強制關閉後
String namec;
private static final String TAG = "MyActivity";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//namec was set as "forest" in a previous activity
//which is bypassed if the user selects continue
//from the main menu
SharedPreferences pathtaken = getSharedPreferences("pathtakenpref", MODE_WORLD_READABLE);
namec = pathtaken.getString("namec", "Unknown");
ImageView v1 = (ImageView) findViewById(R.id.pathpic1);
RelativeLayout v2 = (RelativeLayout) findViewById(R.id.pathmain);
Log.i(TAG, "namec= " + namec);
if(namec == "forest"){
v1.setImageResource(R.drawable.forest);
v2.setBackgroundResource(R.drawable.forestrepeat);
}
}
這裏會發生什麼事是namec,的確在實際上等於「森林」。我將該值發送到日誌,並且它完全按照它應該顯示的變量(「forest」)。但是它不會運行if中的代碼。它給了我惡夢。我一直堅持這一個星期!
在相同的代碼中,我加載了一組不同的sharedPreferences(標記爲TRHprefs),並且這些(6個整數和3個字符串)中的每一個加載並顯示得很好。我甚至添加了一個if {}來測試TRHprefs中的1個字符串和1個整數......它們都返回true。
問題1:是否有任何事情可以導致我的sharedPreferences xml在關閉的時候以某種方式變爲損壞?
問題2:在使用force close來幫助調試情況之前和之後,是否有方法可以查看xml文件。非常感謝!
真的嗎?過去一週,我一直在清理,更改,移動和刮取我的代碼......而且這一次我只是在檢查字符串「不正確」的方式......哇,我有很多東西需要學習。謝謝! – cerealspiller