完成后,以编程方式关闭ACTION_VIEW对话框

时间:2019-12-08 17:46:40

标签: java android updates

我们有一个允许用户手动更新应用程序的流程,因为我们的设备没有任何应用程序商店。我们从服务器下载apk并运行:

updateIntent = new Intent(Intent.ACTION_INSTALL_PACKAGE);
updateIntent.setData(contentUri);
updateIntent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);

,其中contentUri指向我们存储的APK的位置。当安装正在运行时,该应用程序将关闭。然后,完成时将显示以下屏幕:

收到MY_PACKAGE_REPLACED意向后,我们将立即重新启动应用程序。问题是此屏幕仍在后台。

如何以编程方式将其消除?

我尝试过:

// Dismiss all system ui messages
Intent closeDialog = new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS);
sendBroadcast(closeDialog);

但不适用于此类对话框

2 个答案:

答案 0 :(得分:1)

尝试添加EXTRA_RETURN_RESULT标志:

updateIntent.putExtra(Intent.EXTRA_RETURN_RESULT, true);

答案 1 :(得分:0)

当您的应用正在安装/更新时,它进入stop状态,这与用户进入设置和force stop您的应用时的状态相同。 因此,serviceBroadcastReceiver都将无法运行,因为您的应用将无法运行。

我建议您再创建1个应用程序,该应用程序将使用BroadcastReceiver收听APP INSTALLATIONS并执行与此相关的操作,例如每当用户使用APK更新您的应用程序时,它将在安装后打开该应用程序。

Check this answer

希望这会有所帮助!

相关问题