2016-06-24 3 views
0

У меня есть sharedpreference, который сохраняет данные в порядке до закрытия приложения. когда приложение перезапустило данные в sharedpreferences, пропало, пожалуйста, скажите мне решение. Я хочу, чтобы при закрытии приложения или перезагрузке или перезагрузке телефона мои данные в preferences были сохранены.android sharedpreferences не сохраняет данные при перезагрузке приложения

public static final String MyPREF_MOB = "MyPref_mob"; 
public static final String WALLPAPER_MOB = "wallpaper_mob"; 

if(encodedImagee!=null) { 
    // shre1 = PreferenceManager.getDefaultSharedPreferences(context); 
    SharedPreferences.Editor edit = shre1.edit(); 
    edit.putString(WALLPAPER_MOB, encodedImagee); 
    edit.apply(); 
    // Toast.makeText(Profile1Activity.this, "new same image in prefrences", Toast.LENGTH_SHORT).show(); 
} 
shre1 = getSharedPreferences(MyPREF_MOB, Context.MODE_PRIVATE); 
final String image_save =shre1.getString(WALLPAPER_MOB, ""); 

я также попробовать этот

if(encodedImagee!=null) 
     { 
      // shre1 = PreferenceManager.getDefaultSharedPreferences(context); 
      SharedPreferences.Editor edit = shre1.edit(); 
      edit.putString("mob_wallpaper", encodedImagee); 
      edit.commit(); 
      // Toast.makeText(Profile1Activity.this, "new same image in prefrences", Toast.LENGTH_SHORT).show(); 
     } 
     shre1 = PreferenceManager.getDefaultSharedPreferences(context); 
     final String image_save =shre1.getString("mob_wallpaper", ""); 

я должен использовать этот код сохранения данных при рестарт приложение также я могу получить данные, но когда данные перезагрузки телефона снова пошел

if(encodedImagee!=null) 
     { 
      // shre1 = PreferenceManager.getDefaultSharedPreferences(context); 
      SharedPreferences.Editor edit = shre1.edit(); 
      edit.remove("mob_wallpaper"); 
      edit.apply(); 
      edit.putString("mob_wallpaper", encodedImagee); 
      edit.apply(); 
      // Toast.makeText(Profile1Activity.this, "new same image in prefrences", Toast.LENGTH_SHORT).show(); 
     } 
     shre1 = PreferenceManager.getDefaultSharedPreferences(context); 
     final String image_save =shre1.getString("mob_wallpaper", ""); 
+0

просьба представить более подробную информацию о том, когда вы сохраните данные и при извлечении его снова в течение всего жизненного цикла Aplication в .. и как –

+0

у меня есть цикл, в котором я использовал sharedprefrences для получения данных и сохранения и получения его работы, но когда приложение закрывает данные в sharedprefences, ушли –

+0

, пожалуйста, предоставьте еще один код –

ответ

0
//get the preference instance with this 
SharedPreferences mPrefs = PreferenceManager.getDefaultSharedPreferences(this); 
// acccess a saved key value 
mPrefs.getString("key", "default_value"); 
//save a key-value 
mPrefs.edit().putString("key", "new_value").apply(); 
1

Я принимаю из вашего примера код, который вы используете

  • PreferenceManager.getDefaultSharedPreferences для чтения
  • getSharedPreferences(MyPREF_MOB, Context.MODE_PRIVATE) для написания

Я думаю, вы должны использовать тот же в обоих случаях.

Попробуйте заменить

shre1 = getSharedPreferences(MyPREF_MOB, Context.MODE_PRIVATE); 

по

shre1 = PreferenceManager.getDefaultSharedPreferences(context); 
+0

я также использую этот –

+0

его рабочий режим, сохраняющий данные и извлечение данных, но когда данные перезапуска приложений пропали –

2

Попробуйте это,

 SharedPreferences sharedPreferences = getSharedPreferences("preference_name", Context.MODE_PRIVATE); 
     if (encodedImagee != null){ 
      SharedPreferences.Editor edit = sharedPreferences.edit(); 
      edit.putString("mob_wallpaper", encodedImagee); 
      edit.commit(); 
     }else{ 
      final String image_save = sharedPreferences.getString("mob_wallpaper",""); 
      // put your logic over here 
     } 
+0

также попробуйте, не работает –

+0

'SharedPreferences' очищенные данные, только когда данные приложения очищаются и во время удаления. –

+0

, но его здесь он очищает данные при перезапуске приложения –

0

изменить код таким образом:

@Override 
public void onCreate(.....){ 
    super.onCreate(......); 
setContentView(R.layout.your_layout_xml); 
shre1 = getSharedPreferences(MyPREF_MOB, Context.MODE_PRIVATE); 

final String image_save =shre1.getString(WALLPAPER_MOB, ""); 

и когда вы хотите, чтобы обновить изображение

if(encodedImagee!=null) { 
// shre1 = PreferenceManager.getDefaultSharedPreferences(context); 
SharedPreferences.Editor edit = shre1.edit(); 
edit.putString(WALLPAPER_MOB, encodedImagee); 
edit.commit(); //make use of commit 
// Toast.makeText(Profile1Activity.this, "new same image in prefrences", Toast.LENGTH_SHORT).show(); 
} 
+0

его не работает –

+0

не могли бы вы обновить свой вопрос более подробно. Мне удалось разобрать только этот фрагмент, который вы предоставили – Ashwani

+0

У меня есть вопрос об обновлении У меня есть одно решение, но оно не работает при перезагрузке телефона, но его работа при перезагрузке приложения –

Смежные вопросы