2016-01-20 56 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