Android 如何在运行时服务上访问SharedReference?
我知道如何存储共享引用以及如何访问它们。 在我的应用程序的某些事件中,我会将时间和字符串存储到SharedReference。 在同一时间取决于我设置广播接收器的时间 当该时间出现时,我的应用程序可能已打开,也可能未打开。 onReceive服务方法我正在将用户重定向到某个向用户显示此时间和字符串的活动 但是,当这个时间出现时,如何访问共享引用Android 如何在运行时服务上访问SharedReference?,android,service,sharedpreferences,Android,Service,Sharedpreferences,我知道如何存储共享引用以及如何访问它们。 在我的应用程序的某些事件中,我会将时间和字符串存储到SharedReference。 在同一时间取决于我设置广播接收器的时间 当该时间出现时,我的应用程序可能已打开,也可能未打开。 onReceive服务方法我正在将用户重定向到某个向用户显示此时间和字符串的活动 但是,当这个时间出现时,如何访问共享引用 private static SharedPreferences sharedPreference = PreferenceManager.getDef
private static SharedPreferences sharedPreference = PreferenceManager.getDefaultSharedPreferences(this);
由于SharedReference根据上下文存储,但在运行时,我的应用程序可能未打开。
那么,我如何在运行时访问另一个活动的此共享参考?在应用程序的任何运行时,至少有一个组件正在运行,它可以是
服务,广播接收器或活动。。所有这些组件都附带了一个上下文。
在活动
或服务
的情况下,您可以直接使用ClassName。这
代替上下文
,因为这两个类派生自ContextWrapper
如果是BroadcastReceiver
,则在#onReceive
中获取上下文作为参数
class Receiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
SharedPreferences sharedPreference = PreferenceManager.getDefaultSharedPreferences(context);
}
}
对于服务,您可以直接使用此
class MyService extends Service {
SharedPreferences sharedPreference;
@Override
public void onCreate() {
super.onCreate();
sharedPreference = PreferenceManager.getDefaultSharedPreferences(this);
}
@Nullable
@Override
public IBinder onBind(Intent intent) {
return null;
}
}