簡體   English   中英

Android 在立即模式下下載 APK 后,在應用程序更新中未安裝 APK

[英]Android In App Update not installing APK after downloading APK in immediate mode

應用程序正在使用即時模式更新應用程序。 它開始下載 APK,但下載 APK 后,它永遠不會安裝。 UI 掛起,顯示下載進度 100%。 立即模式下沒有反饋下載已完成。

即時模式如何實現app的自動下載、安裝和重啟?

我正在使用以下模式以立即模式開始更新。

        try {
            appUpdateManager.startUpdateFlowForResult(
                    appUpdateInfo,
                    AppUpdateType.IMMEDIATE,
                    getActivity(),
                    REQUEST_CODE_FOR_APP_UPDATE);
        } catch (IntentSender.SendIntentException e) {
            appUpdateFailed();
        }

嘗試使用 onActivityResult() 您可以檢查日志狀態以了解更新發生的情況及其狀態代碼。 或者,您始終可以使用靈活更新而不是立即。 有關更多信息,請參閱此鏈接

如果有人仍然面臨這個問題,向 AppUpdateManager 添加一個偵聽器並以編程方式重新啟動活動為我解決了這個問題。

他們 promise 認為即時模式將在應用程序更新支持中處理應用程序重新啟動,但他們沒有。

立即:需要用戶更新並重新啟動應用程序才能繼續使用應用程序的全屏用戶體驗。 此 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);

PS:我不擅長回答 SO 問題,但很高興分享我的解決方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM