应用内更新:决定在灵活更新和立即更新之间进行选择的策略
In-App Updates : decide a strategy to choose between Flexible and Immediate update
我已经实施了 Google 的库来提供 In-App updates
,并且我能够从 Google Play 商店[=17]接收 In-App updates
=].我想在一个应用程序中同时实现 Immediate update
和 Flexible update
。但是我找不到这样做的方法。应用内更新库根据 VersionCode 执行检查,VersionCode 只是一个整数。有什么方法可以制定策略来决定是使用灵活更新还是立即更新?
因此,他们已经听到了我们的声音,他们很快就会提出从 Android Dev Summit '19 中听到的解决方案。
问题:
appUpdateManager.appUpdateInfo.addOnSuccessListener{ info ->
if(info.updateAvailability == UpdateAvailability.UPDATE_AVAILABLE){
// Which trigger should I trigger: Flexible or Immediate
}
}
作为开发人员,我们有 2 个信号来决定我们的策略:
1.优先级信号: 表示更新的重要性。优先级值是我们在发布时定义的。然后通过 Play Core Api.
将此优先级值公开给我们的应用程序
示例:
appUpdateManager.appUpdateInfo.addOnSuccessListener{ info ->
if(info.updateAvailability == UpdateAvailability.UPDATE_AVAILABLE){
if(info.updatePriority() > 3 && info.isUpdateAllowed(AppUpdateType.IMMEDIATE)){
// trigger Immediate flow
}
else if(info.isUpdateAllowed(AppUpdateType.FLEXIBLE)){
// trigger Flexible flow
}
}
}
当我们发布一个版本时,我们将优先级值设置为整数,比方说在 0-5 之间。
在我们的应用程序中,我们设置了一个阈值,比如说 3,然后构建一个决策树,如果优先级大于 3,则触发立即更新,否则触发灵活更新。
2。陈旧信号: 表示设备知道更新的时间。
示例:
appUpdateManager.appUpdateInfo.addOnSuccessListener{ info ->
if(info.updateAvailability == UpdateAvailability.UPDATE_AVAILABLE){
if(info.clientVersionStalenessDays() > 90 && info.isUpdateAllowed(AppUpdateType.IMMEDIATE)){
// trigger Immediate flow
}
else if(info.clientVersionStalenessDays() > 30 && info.isUpdateAllowed(AppUpdateType.FLEXIBLE)){
// trigger Flexible flow
}
}
}
他们说这个功能很快就会可用。
在此处查看完整视频:https://youtu.be/_o_q6hatcIs?t=566
我已经实施了 Google 的库来提供 In-App updates
,并且我能够从 Google Play 商店[=17]接收 In-App updates
=].我想在一个应用程序中同时实现 Immediate update
和 Flexible update
。但是我找不到这样做的方法。应用内更新库根据 VersionCode 执行检查,VersionCode 只是一个整数。有什么方法可以制定策略来决定是使用灵活更新还是立即更新?
因此,他们已经听到了我们的声音,他们很快就会提出从 Android Dev Summit '19 中听到的解决方案。
问题:
appUpdateManager.appUpdateInfo.addOnSuccessListener{ info ->
if(info.updateAvailability == UpdateAvailability.UPDATE_AVAILABLE){
// Which trigger should I trigger: Flexible or Immediate
}
}
作为开发人员,我们有 2 个信号来决定我们的策略:
1.优先级信号: 表示更新的重要性。优先级值是我们在发布时定义的。然后通过 Play Core Api.
将此优先级值公开给我们的应用程序示例:
appUpdateManager.appUpdateInfo.addOnSuccessListener{ info ->
if(info.updateAvailability == UpdateAvailability.UPDATE_AVAILABLE){
if(info.updatePriority() > 3 && info.isUpdateAllowed(AppUpdateType.IMMEDIATE)){
// trigger Immediate flow
}
else if(info.isUpdateAllowed(AppUpdateType.FLEXIBLE)){
// trigger Flexible flow
}
}
}
当我们发布一个版本时,我们将优先级值设置为整数,比方说在 0-5 之间。 在我们的应用程序中,我们设置了一个阈值,比如说 3,然后构建一个决策树,如果优先级大于 3,则触发立即更新,否则触发灵活更新。
2。陈旧信号: 表示设备知道更新的时间。
示例:
appUpdateManager.appUpdateInfo.addOnSuccessListener{ info ->
if(info.updateAvailability == UpdateAvailability.UPDATE_AVAILABLE){
if(info.clientVersionStalenessDays() > 90 && info.isUpdateAllowed(AppUpdateType.IMMEDIATE)){
// trigger Immediate flow
}
else if(info.clientVersionStalenessDays() > 30 && info.isUpdateAllowed(AppUpdateType.FLEXIBLE)){
// trigger Flexible flow
}
}
}
他们说这个功能很快就会可用。
在此处查看完整视频:https://youtu.be/_o_q6hatcIs?t=566