Android 应用更新返回缓存的应用更新信息

标签 android kotlin

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

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

使用它时,我注意到当根据谷歌的教程获取应用程序更新信息时,返回的应用程序版本代码有时与商店中可用的应用程序版本代码不一致(有以前的更新信息)。
看起来我们在代码中请求的应用更新信息是从缓存中获取的,而不是真正的 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 商店对任何其他应用程序执行更新时,我们的操作将触发缓存刷新,并且下次应用程序内更新流返回正确的值和更新以正确更新应用程序。

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

更新:

我在其中一次 session 上与谷歌开发人员讨论了这个案例。根据他的说法,无法以编程方式触发 Google Play 的列表更新(有关可用更新的信息) - 用户必须手动输入它,然后更新列表。 Google Play 的缓存持续 24 小时,我被告知 Google Play 应该刷新它的列表。

最佳答案

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

关于Android 应用更新返回缓存的应用更新信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56575180/

相关文章:

java - 无法调用不同模块中的类(动态功能模块)

java - Kotlin gzip解压缩失败

android - 带数字模式的文本键盘

未找到 Android 单元测试依赖项

java - 在Android应用程序(Java)中保存首选项的最快方法?

Android取消异步调用

Android 存储库模式和 RxJava : Use Flowable or Single?

java - 应用程序每次收到推送通知都会崩溃

java - 如何将 Java 源文件的一部分转换为 Kotlin?

android kotlin multiplatform kotlinx.serialization 适用于调试但不适用于发布版本