suppongo di avere dei fraintendimenti con le Intent Flag. Quello che sto cercando di fare è che sto avendo una radio applicazioni di streaming, che ha due attività (PlayerApplication e SettingsScreen). Ho un Service.class per lo streaming che viene eseguito in background, che contiene anche una notifica (è possibile interrompere/avviare la riproduzione nel menu di sovrascrittura delle notifiche e PlayerApplication). Se l'utente fa clic sulla notifica, PlayerApplicationActivity dovrebbe essere riportato sullo schermo.Android: PendingIntent da Notification non attiva il onCreate() se riporta Activity sullo schermo
Tutto funziona bene, si aspettano il caso: si apre utente SettingsScreenActivity -> Apre NotificationOverlayMenu -> clic al di notifica -> PendingIntent riprende a PlayerApplicationActivity
Ora, PlayerApplicationScreen è lì, ma non posso fare clic su nulla. Vedo che l'onCreate() della mia PlayerApplication non viene attivato, se riprendo dalla notifica. Ma il layout sembra bene (gonfiato anche nel onCreate())
ho usato seguendo PendingIntent nella 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);
Quindi in realtà il PendingIntent dovrebbe portare l'attività (se già in esecuzione) di nuovo a la cima. Sto usando Intenti sbagliati o mi manca un punto?
EDIT: e ho dichiarato launchMode in manifest.XML
android:launchMode="singleTask"
Dal momento che avete dichiarato 'Android: launchMode = "singleTask"' 'per la vostra Activity' e è già in esecuzione riceverai la callback 'onNewIntent' invece di' onCreate' –