domyślam się, że mam pewne nieporozumienia z flagami intencji. Próbuję tylko, że mam radio aplikacje strumieniowe, które mają dwie czynności (PlayerApplication i SettingsScreen). Mam usługę Service.class do przesyłania strumieniowego, która działa w tle, która również posiada powiadomienie (możesz zatrzymać/rozpocząć odtwarzanie w menu z nakładką powiadomień i aplikacji PlayerApplication). Jeśli użytkownik kliknie Powiadomienie, PlayerApplicationActivity powróci do ekranu.Android: PendingIntent z powiadomienia nie uruchamia funkcji onCreate(), jeśli przywraca działanie na ekranie
Wszystko działa poprawnie, należy oczekiwać sprawę Użytkownik otwiera SettingsScreenActivity -> otwiera NotificationOverlayMenu -> kliknie na powiadamianiu -> PendingIntent wznawia się PlayerApplicationActivity
Teraz PlayerApplicationScreen tam jest, ale nie mogę nic kliknąć. Widzę, że onCreate() mojego PlayerApplication nie zostanie wyzwolony, jeśli wznowię działanie z Notification. Ale układ wygląda dobrze (także zawyżona w onCreate())
użyłem następujących PendingIntent w Service.class:
PendingIntent contentIntent = PendingIntent.getActivity(
this.getApplicationContext(), //Service.class
0,
new Intent(this,PlayerApplicationActivity.class)
.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP
| Intent.FLAG_ACTIVITY_SINGLE_TOP),
0);
Więc rzeczywiście PendingIntent powinien przynieść Aktywny (jeśli jest już uruchomiony) z powrotem do szczyt. Czy używam złych intencji, czy też brakuje mi punktu?
EDIT: i oświadczyłem launchMode w manifest.xml
android:launchMode="singleTask"
Ponieważ zadeklarowały: launchMode = "singleTask"' 'do Activity' i już działa otrzymasz wywołanie zwrotne 'onNewIntent' zamiast' onCreate' –