Java 从GCMBroadcastReceiver获取共享首选项
我的应用程序中有一个值保存在Java 从GCMBroadcastReceiver获取共享首选项,java,android,notifications,sharedpreferences,google-cloud-messaging,Java,Android,Notifications,Sharedpreferences,Google Cloud Messaging,我的应用程序中有一个值保存在main活动的共享首选项中,每当我的应用程序收到通知时,我需要在我的GCMBroadcastReceiver中使用该值 我可以从GCMBroadcastReceiver访问共享首选项吗?或者有其他方法接收此值?使用以下代码保存值和检索值 public class GCMBroadcastReceiver extends BroadcastReceiver { PreferenceManager manager; @Override public
main活动的共享首选项中,每当我的应用程序收到通知时,我需要在我的GCMBroadcastReceiver
中使用该值
我可以从GCMBroadcastReceiver
访问共享首选项吗?或者有其他方法接收此值?使用以下代码保存值和检索值
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.
}
}
我发现了问题
我必须使用传递给onReceive方法的上下文
SharedPreferences prefs = context.getsharedPreferences("prefs name", Context.MODE_PRIVATE);
它不起作用,因为GcmBroadcastReceiver
不是一个活动。但您将可以访问BroadcastReceiver中的上下文,通过它可以获取应用程序上下文。您只需做一件事,即在ApplicationContext中保存首选项,而不是任何特定于组件的上下文。然后,只有您的首选项才能通过应用程序使用。