Niezawodne odbieranie wiadomości to najważniejsza funkcja każdej aplikacji do przesyłania wiadomości na Androidzie. Ważne jest też wdrażanie wiadomości z uwzględnieniem stanu systemu i żywotności baterii. W tym dokumencie znajdziesz najważniejsze strategie i narzędzia, które pomogą Ci zapewnić spójne, wydajne i niezawodne odbieranie wiadomości przez aplikację na Androida.
Mechanizmy dostarczania wiadomości
Najlepsze podejście do niezawodnego przesyłania wiadomości zależy od konkretnych wymagań aplikacji. Weź pod uwagę takie czynniki jak:
- bieżące potrzeby w zakresie czasu rzeczywistego,
- Częstotliwość wysyłania wiadomości
- Ograniczenia dotyczące baterii
Wiadomości w czasie rzeczywistym na pierwszym planie
Gdy aplikacja jest na pierwszym planie, użytkownik zwykle oczekuje dość dużej ilości informacji i chce wiedzieć m.in.:
- Czy osoba, do której wysyłana jest wiadomość, jest obecna przy urządzeniu?
- Czy piszą?
- Czy odbiorca przeczytał wiadomość?
Typowym sposobem obsługi tego rodzaju wymiany danych w czasie rzeczywistym jest użycie protokołu klient-serwer, takiego jak WebSockets. WebSockety umożliwiają trwałą, dwukierunkową komunikację między aplikacją a serwerem. Biblioteka OKHTTP zawiera implementację protokołu WebSocket, której możesz używać w swoim kliencie na Androida.
Baza danych czasu rzeczywistego Firebase udostępnia gotowe zaplecze i interfejs klienta, które mogą obsługiwać tego rodzaju komunikację w Twoim imieniu. Wewnętrznie korzysta z protokołu WebSockets do komunikacji w czasie rzeczywistym między klientem a serwerem.
Wiadomości w czasie rzeczywistym w tle
Gdy aplikacja nie jest już na pierwszym planie, należy unikać działań, które negatywnie wpływają na stan systemu i żywotność baterii. Ponieważ niezawodne dostarczanie powiadomień o wiadomościach jest nadal ważne, zalecamy korzystanie z Komunikacji w chmurze Firebase (FCM).
FCM to rozwiązanie do przesyłania wiadomości na wielu platformach, które skutecznie wysyła powiadomienia i wiadomości z danymi na urządzenia z Androidem (i inne). W przypadku urządzeń z usługami Google korzysta z warstwy transportowej Androida (ATL), dzięki czemu aplikacja może otrzymywać powiadomienia o zmianach, gdy nie jest już uruchomiona. Terminowość dostarczania wiadomości zależy od stanu urządzenia, priorytetu wiadomości oraz tego, czy aplikacja podlega ograniczeniom z powodu trybu uśpienia lub trybu gotowości aplikacji.
- Dowiedz się, jak zintegrować FCM z projektem aplikacji na Androida
- Poznaj interfejs API FCM (po stronie serwera) i jego możliwości
Zwiększanie niezawodności dostarczania wiadomości
Aby jeszcze bardziej zwiększyć skuteczność dostarczania wiadomości, weź pod uwagę te strategie:
- Używaj
WorkManager, aby okresowo wybudzać aplikację i sprawdzać, czy są nowe wiadomości, gdy urządzenie ma połączenie z siecią i (najlepiej) gdy jest podłączone do ładowarki. - Uzyskaj wgląd w dostarczanie FCM za pomocą narzędzi takich jak konsola Firebase i statystyki dostarczania pakietu SDK na Androida z interfejsu FCM Data API.
- Korzystaj z mechanizmów rejestrowania i narzędzi takich jak Firebase Crashlytics, aby monitorować i rozwiązywać problemy z dostarczaniem wiadomości.