【发布时间】:2018-01-23 06:56:26
【问题描述】:
我的 Android 应用中有一个同步适配器,我在共享首选项中保存了一些数据。
让我以时间戳为例进行解释,在同步适配器中我存储时间戳,当我打开/使用我的 android 应用程序时,数据仍然显示旧数据。
我正在使用下面的代码,
public void saveTimeStamp(long timestamp) {
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putLong("timestamp", timestamp);
editor.apply();
}
public long getLoginTimestamp() {
return sharedPreferences.getLong("timestamp", 0);
}
我尝试从应用程序中调用相同的方法并且它正在更新。即使我调试并检查它也从同步适配器调用上述方法,但数据没有更新。
在同步适配器中,我检查了记录数据,它已正确记录,但在应用程序中未反映。我认为它对同步适配器和应用程序采取了不同的偏好设置,因为两者都将处于不同的进程中
【问题讨论】:
-
您如何在同步适配器中获取
SharedPreferences对象,以及如何在应用程序中获取? -
@MikeM。我有一个单例类,我通过传递一个上下文来调用那个类。我在应用程序和同步适配器服务中使用相同的类
-
@MikeM。我尝试调试和记录。现在我开始知道,对于同步适配器,它采用单独的偏好,而对于应用程序,它采用单独的偏好。我该如何处理这个
-
看看这篇文章:stackoverflow.com/q/26408622.
-
@MikeM。谢谢,现在可以正常使用了
标签: android asynchronous service