Android缓存数据和更新策略?

标签 android caching service background

我将从不同来源获取新闻和天气数据。

为了缓存,我正在考虑存储 json 字符串,在 SQLite 中使用键值对以及从服务器获取第一个数据时的时间戳。

如果数据超过一小时,则检查更新,否则使用现有数据加载到对象中并显示。

这样可以吗?

我如何进行每小时检查?一种方法是在用户每次使用该应用程序时进行检查,但是否还有其他方法,例如使用某种后台服务?

注意: 可能有人问过这个问题,但我搜索的一些不是我想的。

最佳答案

是的,您可以添加定时重复闹钟,请阅读以下链接:

http://developer.android.com/training/scheduling/alarms.html#set

示例代码:

private void scheduleService() {
    Intent intent = new Intent(this, YourClass.class);
    long ONE_HOUR_RETRY_TIME = System.currentTimeMillis() + 60*60*1000;

    PendingIntent pintent = PendingIntent.getService(this, 0, intent, 0);
    AlarmManager alarm = (AlarmManager) getSystemService(ALARM_SERVICE);

    alarm.set(AlarmManager.RTC_WAKEUP, ONE_HOUR_RETRY_TIME, pintent);
}

关于Android缓存数据和更新策略?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22561414/

相关文章:

java - 需要为 TextView 格式化货币

Android Studio 关于应用模块的最佳实践

android - 如何以编程方式在 Android 中禁用 GSM 连接

java - 如何在Android中使用Volley方法发布数组,这里最后一个索引值发布在数据库中

ruby-on-rails - 如何根据 URL 中的参数破坏我的缓存键?

c# - Azure 函数和缓存

android - 应用程序进入后台时调用 OnDestroy() 进行服务

android - AccessibilityService - performGlobalAction 在自己的应用程序中不起作用

ruby-on-rails - rails : default scoping being cached by query cache?

c# - 以用户身份安装 Windows 服务