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();
        }
    });
6
задан BarkovAndrey 2 August 2012 в 13:34
поделиться