android - 我可以从服务内的共享首选项中获取数据吗?

标签 android sharedpreferences android-service android-2.2-froyo

我正在开发一个安卓应用程序。我使用的是安卓 2.2

在我的应用程序中,我正在捕获 GPS 数据并以 1 小时的时间间隔将其发送到服务。如果用户退出应用程序,它也可以工作(这是必需的)。

我正在使用 2 个服务(用户定义),一个用于捕获 GPS 数据,另一个用于发送到服务器。

这是我的疑问

  • 在服务中,我们可以使用共享偏好吗?

  • 如果我们在应用程序的任何 Activity 中将任何数据存储在共享首选项中,我们能否在共享首选项的帮助下在服务中使用该数据?

最佳答案

您可以通过调用 PreferenceManager.getDefaultSharedPreferences(Context context) 访问默认的共享首选项实例,该实例在您的所有 ActivityService 类中共享。 :

SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);

这对于存储简单的原语(如 bool 值)或可序列化对象非常有用。但是,如果您要捕获大量位置数据,则可以考虑使用 SQLite 数据库。

关于android - 我可以从服务内的共享首选项中获取数据吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13558550/

相关文章:

Androidx数据存储测试: Ensure that you are only creating a single instance of datastore for this file

android - 如何从 BroadcastReceiver API 26+ 取消服务

android - 通过代码获取所有Android Lollipop通知

java - 如何发出 Http Get 快速请求?

android - 如何从日历中获取下周的日期

java - Android:重用日期选择器

android - IntentService 中的 registerReceiver 未命中 BroadcastReceiver

android - 在Android中的recylerview上实现 map 时,Google Map返回空对象引用

java - 重新启动后无法访问另一个类中的 SharedPreferences 值

Android 共享首选项名称