Inicjowanie architektury aktualizacji

Po ustawieniu właściwości konfiguracyjnych (zobacz Prosty przykład: korzystanie z wersji ApplicationUpdaterUI ) należy wywołać metodę initialize() w celu zainicjowania aktualizacji:

appUpdater.initialize();

Metoda ta wykonuje następujące operacje:

  • Inicjuje architekturę aktualizacji, przeprowadzając cichą instalację wszelkich oczekujących aktualizacji. Wymagane jest wywołanie tej metody podczas uruchamiania aplikacji, ponieważ może ona wymusić ponowne uruchomienie aplikacji.

  • Sprawdza, czy istnieje oczekująca (odłożona w czasie) aktualizacja, a jeśli tak, instaluje ją.

  • Jeśli w procesie aktualizacji wystąpi błąd, metoda usuwa informacje o pliku aktualizacji i o wersji z obszaru pamięci aplikacji.

  • Jeśli minął okres opóźnienia, rozpoczyna proces aktualizacji. W przeciwnym razie ponownie uruchamia licznik czasu.

Wywołanie tej metody może spowodować, że obiekt Updater wywoła następujące zdarzenia:

  • UpdateEvent.INITIALIZED — wywoływane po zakończeniu inicjowania.

  • ErrorEvent.ERROR — wywoływane, jeśli w trakcie inicjowania wystąpi błąd.

Po wywołaniu zdarzenia UpdateEvent.INITIALIZED proces aktualizacji jest ukończony.

Wywołanie metody initialize() powoduje, że obiekt Updater rozpoczyna proces aktualizacji i wykonuje wszystkie kroki z uwzględnieniem ustawionego opóźnienia. Możliwe jest jednak także rozpoczęcie procesu aktualizacji w dowolnej chwili, poprzez wywołanie metody checkNow() obiektu Updater:

appUpdater.checkNow();

Jeśli proces aktualizacji już trwa, ta metoda nie wykonuje żadnych czynności. W przeciwnym razie rozpoczyna proces aktualizacji.

Obiekt Updater może wywoływać następujące zdarzenie w wyniku wywołania metody checkNow() :

  • zdarzenie UpdateEvent.CHECK_FOR_UPDATE tuż przed próbą pobrania pliku deskryptora aktualizacji.

Jeśli zdarzenie checkForUpdate zostanie anulowane, można wywołać metodę checkForUpdate() obiektu Updater. (Patrz następna sekcja). Jeśli zdarzenie nie zostanie anulowane, proces aktualizacji przechodzi do etapu sprawdzania, czy istnieje plik deskryptora aktualizacji.