我的英语非常非常糟糕,因为我是俄语。 :)重启设备后的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