Android 从广播接收器获取首选项
在我的应用程序中,我使用Android 从广播接收器获取首选项,android,broadcastreceiver,android-preferences,Android,Broadcastreceiver,Android Preferences,在我的应用程序中,我使用getPreferences(Context.MODE\u PRIVATE)获取用户设置的首选项。请注意,我在整个项目中使用的是getPreferences,而不是getSharedReferences 现在我想从BroadcastReceiver获取首选项,但问题是:它只能使用方法getSharedReferences。我想用这个我可以得到另一个偏好文件,对吗?那么,如何通过getSharedReferences方法获得我的“正常”首选项(我可以通过getPrefere
getPreferences(Context.MODE\u PRIVATE)
获取用户设置的首选项。请注意,我在整个项目中使用的是getPreferences
,而不是getSharedReferences
现在我想从BroadcastReceiver获取首选项,但问题是:它只能使用方法getSharedReferences
。我想用这个我可以得到另一个偏好文件,对吗?那么,如何通过getSharedReferences
方法获得我的“正常”首选项(我可以通过getPreferences
方法获得)?getPreferences()方法只能在活动中使用,不能在广播接收器中使用。相反,您必须使用GetSharedReferences(String prefKey,int模式)来获取所有应用程序组件的首选项。在“保存持久状态”下查看:
获取首选项 在此调用中,您不会传递首选项的名称,这并不意味着创建此首选项对象时没有名称。简单地说,这个调用为以这种方式创建的首选项文件指定了一个默认名称 您总是需要对活动的引用才能调用此方法。 ACTIVITY.this.getPreferences(模式) getSharedReferences 在这种情况下,您可以通过为其指定名称来创建首选项文件 GetSharedReferences(名称、模式) 解决方案
所以这两种方法都给了我相同的首选项文件?我认为这是两个不同的文件,我无法从彼此访问它们。因此,如果我使用从
getPreferences
创建的编辑器来编写设置,那么我编写的所有设置都可以通过getPreferences
和getSharedReferences
访问。如果我不正确,请不要责怪我,但如果您使用的是活动的类名,我认为可以。getPreferences()正在将活动的类名作为首选项名称传递。因此,如果在getSharedReferences()中使用此参数,可能会起作用