Android在应用程序更新中返回缓存的应用程序更新信息

时间:2019-06-13 07:14:24

标签: android kotlin

使用Google的新功能应用内更新时,我注意到它似乎返回的是旧的(以前的)更新信息,而不是正确的最新信息。

Android在一段时间前引入了新的强制更新功能: https://developer.android.com/guide/app-bundle/in-app-updates 称为应用内更新

使用它,我注意到根据Google教程获取应用程序更新信息时,返回的应用程序版本代码有时不是最新的,与商店中可用的应用程序版本代码相同(具有以前的更新信息)。 看起来我们在代码中请求的应用更新信息强烈地是从缓存中获取的,而不是真正的Google Play商店服务。

val appUpdateManager = AppUpdateManagerFactory.create(context)
val appUpdateInfoTask = appUpdateManager.appUpdateInfo
appUpdateInfoTask.addOnCompleteListener { task ->
   when {
      task.isSuccessful -> {
         val appUpdateInfo = task.result
         //the successful app update info may have old (previous) info 
         [...]
      }
      [...]
   }
}

当我们决定激活强制更新流程时,即使商店中有可用的更高版本的应用程序,应用程序也会更新为错误版本。

更深入地研究主题,我发现,当通过Google Play商店对任何其他应用执行更新时,我们的操作将触发缓存刷新,而下次应用内更新流程返回正确的值和更新以更正应用更新时。

有人知道如何通过应用内更新或以编程方式强制刷新播放存储缓存来获取正确的(最新)可用的应用版本代码吗?

1 个答案:

答案 0 :(得分:0)

我有同样的问题。我遵循了“疑难解答”部分here,现在可以下载最新的应用程序。但是对于实际用户来说,问题仍然存在...