2015-07-27 4 views
1

Мне нужно сгенерировать уведомление с использованием BroadcastReceiver и вам нужно сохранить некоторые данные в классе BroadcastReceiver.Можно ли установить SharedPreference в BroadcastReceiver?

Итак, я использовал SharedPreference. Но не удалось сохранить данные вSharedPreference`.

SharedPreferences pref_date; 
    public static final String MyPREFERENCES = "MyPrefs"; 
    pref_date = context.getSharedPreferences(MyPREFERENCES,context.MODE_PRIVATE); 
    _ed = pref_date.edit(); 
    String t="hello"; 
    _ed.putString(_date,t); 
    _ed.putString(flag,"0"); 
    _ed.commit(); 
+1

Оставьте свой код. – aga

+0

Хорошо, мне кажется. Как вы думаете, почему данные не сохраняются? – aga

+0

Да, вы можете получить доступ к общим предпочтениям от BR, это обрабатывается в основном потоке пользовательского интерфейса. Какую ошибку вы получаете? – fab

ответ

0

Трудно сказать, ж/о, глядя в исходный код, но наиболее вероятно вы забыли для вызова Editor «s apply() или commit() метод, например, так:

mSharedPreferences.edit().putInt("some_int", 0).apply(); 
+0

Я опубликовал свой код, который я использовал в BR.Пожалуйста, посмотрите на него –

0

Да, SharepPreference просто вид файла, который имеет пары ключ-значение для хранения и извлечения. Вы можете получить доступ к нему из любого места приложения. Даже из Сервисов, созданных вашим приложением.

0

Согласно documentation, это то, как вы должны написать ваши SharedPreferences:

SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE); 
SharedPreferences.Editor editor = sharedPref.edit(); 
editor.putString("yourKey", "stringToSave"); 
editor.commit(); 

И это, как вы читаете:

SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE); 
String defaultValue = "defaultValue"; 
String yourSavedString = sharedPref.getString("yourKey", defaultValue); 

Это пример рабочего копирования/вставки. Имейте в виду, что "yourKey" используется для определения вашего значения, поскольку SharedPreferences - это пара ключ/значение, поэтому они должны совпадать как при чтении, так и в записи.