0

У меня в моем приложении значение, которое сохраняется в общих настройках в MainActivity, которое мне нужно использовать в моем GCMBroadcastReceiver всякий раз, когда приходит уведомление о моем приложении.Получение общих предпочтений от GCMBroadcastReceiver

Могу ли я получить доступ к общим настройкам с GCMBroadcastReceiver? Или, может быть, есть другой способ получить это значение?

ответ

0

Я нашел проблему.

я должен был использовать контекст, передаваемый OnReceive метод

SharedPreferences prefs = context.getsharedPreferences("prefs name", Context.MODE_PRIVATE); 
1

используйте следующий код для сохранения значений и получения значений.

public class GCMBroadcastReceiver extends BroadcastReceiver 
{ 
    PreferenceManager manager; 

    @Override 
    public void onReceive(Context context, Intent intent) 
    { 

     manager = (PreferenceManager) PreferenceManager.getDefaultSharedPreferences(context.getApplicationContext()); 
     SharedPreferences preferences = manager.getSharedPreferences(); 
    // handle here your broadcast receiver specific code. 
    } 
} 
+0

Это не работает, потому что 'GcmBroadcastReceiver' не является деятельностью. –

+0

Но у вас будет доступ к контексту в BroadcastReciever, который может получить контекст приложения. В основном вам нужно сделать только одну вещь, которая сохранит настройки в ApplicationContext, а не какой-либо компонентный контекст. Тогда только ваши предпочтения будут доступны через приложение. – Sush

+0

проверить обновленный ответ – Sush

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