应用程序正在使用即时模式来更新应用程序。它开始下载APK,但是下载APK之后,它再也不会安装。 UI挂起,显示下载进度100%。在即时模式下,没有反馈表明下载已完成。
如何在即时模式下自动实现应用的下载,安装和重启?
我正在使用以下模式以即时模式开始更新。
try {
appUpdateManager.startUpdateFlowForResult(
appUpdateInfo,
AppUpdateType.IMMEDIATE,
getActivity(),
REQUEST_CODE_FOR_APP_UPDATE);
} catch (IntentSender.SendIntentException e) {
appUpdateFailed();
}
答案 0 :(得分:2)
尝试使用onActivityResult(),您可以检查日志状态以了解更新所发生的情况及其状态代码。 或者,您始终可以使用弹性更新,而不是立即更新。有关更多信息,请参见此link
答案 1 :(得分:0)
如果仍然有人遇到此问题,可以向AppUpdateManager中添加一个侦听器,然后以编程方式重新启动活动。
他们承诺即时模式会在in app update support处处理应用程序重启,但事实并非如此。
立即:全屏用户体验,要求用户更新并重新启动应用程序才能继续使用该应用程序。此UX最适合更新对于继续使用该应用至关重要的情况。用户接受即时更新后,Google Play会处理更新安装并重新启动应用程序。
这里是一个例子,
InstallStateUpdatedListener installStateUpdatedListener = new
InstallStateUpdatedListener() {
@Override
public void onStateUpdate(InstallState state) {
if (state.installStatus() == InstallStatus.DOWNLOADED){
Intent i = getBaseContext().getPackageManager().getLaunchIntentForPackage(getBaseContext().getPackageName());
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
finish();
} else if (state.installStatus() == InstallStatus.INSTALLED){
if (appUpdateManager != null){
appUpdateManager.unregisterListener(installStateUpdatedListener);
}
}
}
};
此代码仅监视更新状态,下载完成后,它将创建一个新的基本意图并完成当前意图。这样就称为“ OnResume”。
将此监听器注册到AppUpdateManager:
appUpdateManager.registerListener(installStateUpdatedListener);
P.S .:我不擅长回答SO问题,但很乐意分享我的解决方法。