2016-01-20 54 views
2

我使用我的Java代码中的ApplicationLauncher.launchApplicationInProcess() API使用install4J的自动更新功能。ApplicationLauncher.Callback通知完成Install4j安装

该API有一个参数ApplicationLauncher.Callback.我认为这个回调方法将在完成安装过程完成后调用。

但我观察到,当实际安装过程(此过程的名称与安装文件名相同)完成时,此调用未被调用。

是否有任何回调机制来检测安装状态?

回答

0

这里有两个独立的过程:

  • 的更新,这是你与ApplicationLauncher.launchApplicationInProcess()

  • 新的安装程序,它开始下载和更新程序开始叫什么。

在更新器执行安装程序之前调用该回调,然后更新器自行终止。这一系列事件需要避免锁定或删除文件的问题。

如果您需要在安装结束时执行某些操作,则必须将该逻辑放置在安装程序中。

+0

根据您的建议,我在安装结束时添加了“运行脚本”操作。该脚本检查“context.isErrorOccurred()”的返回值。令人惊讶的是,即使更新成功,它也给了我“真实”。有没有其他可靠的方法来检测安装结束时的安装状态(失败/成功/回滚)。 – Dev

+0

成功是一个由您自己定义的相对术语。如果自上次标志被清除后任何操作失败,'context.isErrorOccurred()'返回'true'。如果该操作的失败策略是“继续”(这是默认设置),则安装程序没有失败。如果在安装结束时到达,则安装“成功”。要对回滚做出反应,请在上下文中注册一个事件侦听器。 –

+0

Listner解决了我的问题。谢谢 !! – Dev