我的英語非常非常糟糕,因爲我是俄語。 :)重啓設備後的Android SharedPreferences
在我的應用程序中,我使用SharedPreferences
來存儲我的值。 數據已存儲在SharedPreferences
中,當應用程序正在運行時以及退出後。一切正常,直到我重新啓動我的設備。重新啓動後,我無法使用SharedPreferences
,並且應用程序不會從那裏讀取和寫入數據。 我使用函數getPreferences(0)
從應用程序數據文件夾中獲取首選項。 我也試過用getSharedPreferences(myPref, MODE_PRIVATE)
,但效果是一樣的。重啓設備後只保存一個解決方案 - 數據清理應用程序。
favoriteButton = (ImageView) findViewById(R.id.favorite_button);
SharedPreferences favorite = getSharedPreferences("Favorites", MODE_PRIVATE);
if(favorite.getString(""+Loader.currentVideo.getTitle()+"", "") == "true") {
favoriteButton.setImageDrawable(getResources().getDrawable(R.drawable.fav_selected));
} else {
favoriteButton.setImageDrawable(getResources().getDrawable(R.drawable.fav_empty));
}
favoriteButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
SharedPreferences favorite = getSharedPreferences("Favorites", MODE_PRIVATE);
SharedPreferences.Editor editor = favorite.edit();
if(favorite.getString(""+Loader.currentVideo.getTitle()+"", "") == "true") {
favoriteButton.setImageDrawable(getResources().getDrawable(R.drawable.fav_empty));
Loader.favoriteVideos.remove(Loader.currentVideo);
editor.remove(""+Loader.currentVideo.getTitle()+"");
} else {
favoriteButton.setImageDrawable(getResources().getDrawable(R.drawable.fav_selected));
Loader.favoriteVideos.add(Loader.currentVideo);
editor.putString(""+Loader.currentVideo.getTitle()+"", "true");
}
editor.commit();
}
});
這是由於SharedPreferences在重啓時被終止。看看[數據存儲選項](http://developer.android.com/guide/topics/data/data-storage.html)。 – 2012-08-02 11:41:56
請發佈您正在嘗試的代碼。如果您發現任何問題,請記錄日誌。 – AAnkit 2012-08-02 11:42:08
@Cdr。 Powell - SharedPreferences存儲在閃存驅動器上的文件中,重新啓動不會影響該文件。 – mah 2012-08-02 11:45:16