Próbuję zaimplementować zachowanie opisane here, gdzie powiadomienie (lub coś podobnego) rozpoczyna "wewnętrzną" aktywność w aplikacji, a następnie po naciśnięciu klawisza cofa moja aktywność "domowa".Powrót do głównej aktywności z działań związanych z tworzeniem powiadomień
Android docs powiedzieć
W przypadku przycisku Wstecz, należy dokonać nawigacji więcej przewidywalne przez wstawienie do tyłu zadaniem jest stos kompletny wzrostową ścieżkę nawigacji do aplikacji najwyższej ekranie. Dzięki temu użytkownicy, którzy nie pamiętają, jak wkroczyli do Twojej aplikacji, przechodzą na najwyższy ekran aplikacji przed jej zamknięciem, .
Czy istnieje dobry sposób, aby to zrobić? Inne pytania dotyczące Stackoverflow sugerują rozpoczęcie głównej aktywności z intencją, która mówi jej o rozpoczęciu wewnętrznej aktywności, ale wydaje się, że jest to wielki hack, że nieco wątpię, że Google użyłoby go w Gmailu i zakładam, że jest przyzwoita metoda, biorąc pod uwagę że opowiadają się za zachowaniem.
Czy istnieje nie-hacky sposób to zrobić?
Niestety, to nie wydaje się działać dla mnie. Moja MainActivity rzeczywiście zostaje ponownie wciśnięta na stos nawigacyjny i działa tylko jeden raz na jedno powiadomienie (nie odrzucam ich automatycznie). Jakieś pomysły? – bompf
@bompf, prawdopodobnie z powodu 'PendingIntent.FLAG_ONE_SHOT' używanego w' PendingIntent.getActivities'. Zamiast tego sugeruję 'PendingIntent.FLAG_CANCEL_CURRENT'. – Sam
Dzięki; to działało dla mnie, podczas gdy 'TaskStackBuilder' nie działało. Jednak Twój kod spowodował dziwny stan: jeśli otworzyłem 'MainActivity' przez launcher, a następnie otworzyłem akcję z powiadomienia, po naciśnięciu przycisku Back, aby wrócić do" MainActivity ", naciśnięcie przycisku back spowodowało, że "MainActivity" ponownie. W ten sposób: '[MainActivity] [MainActivity] [ConversationActivity]'. Naprawiłem to, zmieniając twój drugi wiersz kodu na 'backIntent.addFlags (Intent.FLAG_ACTIVITY_CLEAR_TASK)'. – Sam