Programowanie wizualno
Transkrypt
Programowanie wizualno
Android Wykład 8 1 Widgety cd Notification 2 Standardowo Widget odświeżany jest najczęściej co 30 minut. Jeżeli nasz widget ma zapewnić częstsze odświeżanie należy zorganizować to odświeżanie samodzielnie. Dobrym rozwiązaniem jest skorzystanie z klasy AlarmManager 3 Widget cykl życia Metoda Opis onEnabled() Wywoływana kiedy widget jest dodawany do ekranu poraz pierwszy onDisabled() Wywoływana kiedy ostatni egzemplarz widgetu usuwany jest z ekranu onUpdate() Wywoływana podczs każdej aktualizacji widgetu onDeleted() Wywoływana kiedy egzemplarz widgetu usuwany jest z ekranu 4 Notification Powiadomienia w systemie Android zazwyczaj pojawiają się na pasku statusu (status bar). Jednak ich możliwości na tym się nie kończą. Nie dość, że mamy możliwość "rozwinięcia" powiadomienia, to możemy dołączyć do niego dźwięk, alarm wibracyjny czy też migającą diodę LED. 5 Ideą powiadomień jest to, że pojawiają się one bez naszej ingerencji, pochodzą od aplikacji/serwisów chodzących w tle. Np. poczta e-mail, sms itp. 6 Do stworzenia powiadomienia wykorzystamy dwie klasy: ◦ Notification - odpowiedzialna za to jak powiadomienie zostanie wyświetlone. Przykładowo jaka ikona zostanie wyświetlona pasku statusu, jaki dźwięk zostanie odtworzony, jakie View zostanie użyte po rozwinięciu paska statusu itd. ◦ NotificationManager - klasa do zarządzania powiadomieniami użytkownika o zdarzeniach w systemie. NotificationManager jest klasą, dla której nie można utworzyć jej instancji. 7 W zamian tego używamy metody getSystemService(String) zwracającej do niej referencję. Parametrem tej metody jest jeden z systemowych serwisów, np. VIBRATOR_SERVICE (w przypadku chęci użycia takowego), WIFI_SERVICE itp. Nas interesuje NOTIFICATION_SERVICE. 8 Zwyczajowo zaczynamy od stworzenia View aplikacji. Tym razem przygotujemy view, zawierające przynajmniej jeden przycisk, który będzie odpowiedzialny za wywołanie powiadomienia. Pobieramy referencję do NotificationManager notificationManager = (NotificationManager)getSystemService (NOTIFICATION_SERVICE); 9 Tworzymy instancję Notification. Jako parametry przyjmuję ikonę jaka zostanie wyświetlona przy powiadomieniu po rozwinięciu, tekst jaki zostanie wyświetlony na pasku statusu oraz moment kiedy powiadomienie ma się pojawić. notification = new Notification(R.drawable.icon,"Hello", System.currentTimeMillis()); 10 Tworzymy obiekt typu Intent. Uruchomi przeglądarkę, a następnie przejdzie na stronę o podanym adresie. Intent notIntent = new Intent(android.content.Intent.ACTION_ VIEW,Uri.parse("http://www.google.com ")); 11 Tworzymy obiekt typu PendingIntent. Umożliwia on przekazanie intentu do innej aktywności (Activities). Np. w naszym przypadku zostanie wywołany z powiadomienia. PendingIntent contentIntent = PendingIntent.getActivity(getApplicat ionContext(), 0, notIntent, 0); 12 Ustawiamy intent oraz teksty jakie mają się pojawić po wywołaniu powiadomienia. notification.setLatestEventInfo(getAp plicationContext(),titleText,bodyText ,contentIntent); Opcjonalnie można dodać flagi, w tym przypadku poniższa flaga powoduje automatyczne usunięcie powiadomienia po "wejściu w nie". notification.flags |= Notification.FLAG_AUTO_CANCEL; 13 Ostatnim krokiem jest przekazanie (metoda notify()) do NotificationManagera naszego powiadomienia. Drugim parametrem jest unikalny dla całej aplikacji identyfikator naszej notyfikacji. notificationManager.notify(notificati onId, notification); 14 15 16 KONIEC 17