piątek, 22 czerwca 2018

Jak działa AppWidgetProvider czyli jakie widget otrzymuje sygnały i co się wtedy dzieje

AppWidgetProvider (zadeklarowany w Manifeście jako <receiver>) umożliwia odbieranie sygnałów przeznaczonych tylko dla widgetów z następujących metod:
  • onUpdate()
    • wywoływana automatycznie zgodnie z parametrem updatePeriodMillis
    • wywoływana automatycznie przy dodawaniu widgetu, żeby np. domyślnie skofigurować widget, jeśli trzeba uruchomić serwis
    • wywoływana z aktywności przy dodawaniu widgetu tylko wtedy, jeśli zostało tak zaprogramowane - programista musi zapewnić, że widget będzie w zupełności skonfigurowany, jeśli decyduje się sosać aktywność umożliwiającą konfigurację
  • onAppWidgetOptionsChanged()
    • wywoływana przy dodawaniu widgetu
    • wywoływana przy zmianie rozmiaru widgetu
    • umożliwia pokazanie lub schowanie elementów widgetu w zależności od jego rozmiaru
    • wprowadzona w Android 4.1 (API 16)
  • onDeleted(Context, int[])
    •  wywoływana gdy App Widget host zamyka widget - konkretną instancję, tylko jedną
  • onEnabled(Context)
    • wywoływana gdy dodawany jest pierwszy obiekt danego widgetu
    • jeśli widget może mieć więcej niż jedną instancję, przy dodawaniu drugiej metoda nie jest wywoływana
    • metoda odpowiednia do implementacji wszystkich funkcji, które mają się wykonać tylko raz, np. stworzenie bazy danych, szczególna konfiguracja
  • onDisabled(Context)
    • wywoływana gdy z App Widget host usuwana jest ostatnia instancja widgetu
    • metoda odpowiednia do implementacji funkcji, które "posprzątają" po widgecie, np. usuną czasowe bazy danych
  • onReceive(Context, Intent)
    • wywoływana przy każdym odebraniu sygnału
    • wywoływana przed każdą ze wspomnianych powyżej metod
    • nie musi być implementowana - AppWidgetProvider ma domyślną implementację, która w odpowiedni sposób radzi sobie z odbieranymi sygnałami i wywołuje odpowiednie funkcje

Brak komentarzy:

Prześlij komentarz