0

最近,我在我的应用程序中添加了应用程序更新功能,具有即时更新流程。这是我正在检查并请求更新onCreate()MainActivity

onCreate()像这样初始化变量

appUpdateManager = AppUpdateManagerFactory.create(this);
appUpdateInfoTask = appUpdateManager.getAppUpdateInfo();

在 onCreate() 中,我添加了这段代码

appUpdateInfoTask.addOnSuccessListener(appUpdateInfo -> {
            if (appUpdateInfo.updateAvailability() == UpdateAvailability.UPDATE_AVAILABLE && appUpdateInfo.isUpdateTypeAllowed(AppUpdateType.IMMEDIATE)) {
                Toast.makeText(app, "update available", Toast.LENGTH_SHORT).show();
                //update is available
                try {
                    appUpdateManager.startUpdateFlowForResult(appUpdateInfo, AppUpdateType.IMMEDIATE, this, Constant.APP_UPDATE_RQ_CODE);
                } catch (IntentSender.SendIntentException e) {
                    e.printStackTrace();
                    Log.e(TAG, "Update app error: " + e.getMessage());
                    Toast.makeText(app, e.getMessage(), Toast.LENGTH_SHORT).show();
                }
            }
        });

而 onActivityResult() 中的这段代码

@Override
    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if(requestCode == Constant.APP_UPDATE_RQ_CODE) {
            if (requestCode == RESULT_OK){
                //update is failed, request update again
                Toast.makeText(app, "this is called again and again!", Toast.LENGTH_SHORT).show();
                requestUpdateApp();
            }
        }
    }

问题是,在更新应用程序后,总是appUpdateInfo.updateAvailability() == UpdateAvailability.UPDATE_AVAILABLE正确的,这就是为什么在应用程序更新对话框中一次又一次地显示。请帮我解决这个问题。

4

1 回答 1

2

对于无法从 Playstore 安装更新 apk 的任何人。错误的不是你的代码,而是你测试这个库的方式。

  1. 您通过上传新闻稿(在添加应用程序更新库后)使用增量版本代码和版本名称来测试您的功能。

  2. 然后你递减或 -1 你的版本和版本代码,然后构建新闻发布 apk 并尝试安装在你的设备中。并显示更新,但安装失败。成功安装后,您会发现您的版本代码 apk 与旧版本保持一致。并一次又一次地弹出更新保持显示。

正确的测试方法是这样的:

  1. 您通过上传新闻稿(在添加应用程序更新库后)使用增量版本代码和版本名称来测试您的功能。从 Playstore 安装您的新闻版本

  2. 然后您增加或 +1 您的版本和版本代码,然后构建新闻发布 apk 或捆绑包并再次上传到带有新闻发布的 Playstore。

  3. 然后等待 apk 或捆绑在 playstore 中上线(直到您在 playstore 中看到“更新”),如果应用程序已经存在于 playstore 中,但您没有在应用程序中找到“更新”。您可以清除playstore中的所有数据并在playstore中再次打开搜索您的应用,您会发现“更新”</p>

  4. 打开你的apk,你会发现show pop up update,更新必须成功。

于 2019-11-25T06:35:13.240 回答