如何在 运行 时间服务上访问 SharedPreference?
How to access SharedPreference on run time service?
我知道如何存储 SharedPreference 以及如何访问它们。
在我的应用程序的某些事件中,我会将时间和字符串存储到 sharedPreference。
在同一时间,取决于我正在设置广播接收器的时间。
当那个时间出现时,我的应用程序可能已打开,也可能未打开。
onReceive 服务方法我将用户重定向到一些 activity,它向用户显示这个时间和字符串。
但是当那个时候出现怎么访问那个SharedPreference呢?
private static SharedPreferences sharedPreference = PreferenceManager.getDefaultSharedPreferences(this);
作为 SharedPreference 根据上下文存储,但在 运行 时我的应用程序可能未打开。
那么我如何才能在另一个 activity 的 运行 时间访问此 SharedPreference?
在您的应用程序的任何运行时,至少有一个组件是 运行 它可以是 Service
、BroadCastreceiver
或 Activity
..所有这些组件都附加了一个上下文给他们。
在 Activity
或 Service
的情况下,您可以直接用 ClassName.this
代替 Context
因为这两个 类 派生自 ContextWrapper
.
在 BroadcastReceiver
的情况下,您在 #onReceive
中获取上下文作为参数 ..
class Receiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
SharedPreferences sharedPreference = PreferenceManager.getDefaultSharedPreferences(context);
}
}
对于服务,您可以直接使用 this
.
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;
}
}
我知道如何存储 SharedPreference 以及如何访问它们。 在我的应用程序的某些事件中,我会将时间和字符串存储到 sharedPreference。 在同一时间,取决于我正在设置广播接收器的时间。
当那个时间出现时,我的应用程序可能已打开,也可能未打开。 onReceive 服务方法我将用户重定向到一些 activity,它向用户显示这个时间和字符串。
但是当那个时候出现怎么访问那个SharedPreference呢?
private static SharedPreferences sharedPreference = PreferenceManager.getDefaultSharedPreferences(this);
作为 SharedPreference 根据上下文存储,但在 运行 时我的应用程序可能未打开。 那么我如何才能在另一个 activity 的 运行 时间访问此 SharedPreference?
在您的应用程序的任何运行时,至少有一个组件是 运行 它可以是 Service
、BroadCastreceiver
或 Activity
..所有这些组件都附加了一个上下文给他们。
在 Activity
或 Service
的情况下,您可以直接用 ClassName.this
代替 Context
因为这两个 类 派生自 ContextWrapper
.
在 BroadcastReceiver
的情况下,您在 #onReceive
中获取上下文作为参数 ..
class Receiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
SharedPreferences sharedPreference = PreferenceManager.getDefaultSharedPreferences(context);
}
}
对于服务,您可以直接使用 this
.
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;
}
}