w jednej z naszych aplikacji korzystających z GCM, otrzymywałyśmy raporty, że aplikacja przestaje otrzymywać powiadomienia, gdy aplikacja została zabita. Gdy aplikacja zostanie ponownie uruchomiona, powiadomienie pojawi się jako normalne.Odbieranie powiadomień GCM na temat systemu Android, gdy aplikacja jest w stanie zatrzymania
Po zbadaniu okazało się, że to z powodu tej zmiany na Androida 3.1:
pamiętać, że system dodaje FLAG_EXCLUDE_STOPPED_PACKAGES do wszystkich zamiarów transmisji. Ma to na celu zapobieganie nieumyślnemu lub niepotrzebnemu uruchamianiu komponentów rozgłoszonych aplikacji przez usługi działające w tle. Usługa lub aplikacja działająca w tle może zastąpić to zachowanie, dodając flagę FLAG_INCLUDE_STOPPED_PACKAGES do celów transmisji, które powinny mieć możliwość aktywowania zatrzymanych aplikacji. (Android 3.1 changes)
I kontrolowane intencję, która jest wypalana przez GCM po otrzymaniu powiadomienia, a ja zauważyłem, że FLAG_EXCLUDE_STOPPED_PACKAGES rzeczywiście jest ustawiona.
Oznacza to, że wszyscy użytkownicy, którzy korzystają z naszej aplikacji na Androida 3.1+, przestaną otrzymywać powiadomienia po zabiciu aplikacji, dopóki nie uruchomią jej ponownie. (Pre-Android 3.1 działa dobrze).
Ponieważ zamiar jest uruchamiany przez samą strukturę GCM, nie możemy zmienić flag, które są na niej ustawione, dlatego szukamy innego obejścia.
Wszystkie pomysły są mile widziane.
Masz rację. Pomyślałem, że zabicie aplikacji w menu ustawień, użycie zabójcy zadań lub usunięcie go z ostatnich zadań przyniosło taki sam efekt, ale tak nie jest. Więc to wcale nie jest problem. Dzięki! – Mopper
Czy masz jakieś rozwiązanie, mam do czynienia z tym samym problemem – Nargis