Domanda

So che ci sono stati alcuni post per quello che sto per chiedere, ma non riesco a trovarne nessuno con la risposta giusta.

Dalla mia comprensione, se la tua attività principale (chiamiamolo a) LaunchMode è impostata su SingleTask e A ha avviato l'attività B, quindi un clic sul pulsante Home distruggerà lo stack di cronologia e rilancia l'applicazione ti riporterà a A e non B.

Ho lancio di lancio su SingleTask perché ho una notifica persistente e non voglio avere più istanze dell'attività principale per apparire ogni volta che l'utente fa clic sulla notifica.

C'è qualcosa che mi manca che mi permetterebbe di soddisfare entrambi?

Quindi sto chiedendo se esiste un modo per assicurarmi che ogni volta che l'utente desidera avviare l'app, dalla notifica o meno, di riportarlo all'ultima attività (corrente).

Se cambio lancio di lancio in singletop funziona ma ricevo più istanze dell'attività principale ogni volta che la lancio.

Grazie

Andreas

È stato utile?

Soluzione

Hai provato a impostare il lancio di lancio su singletop a tutte le attività della tua app ?? Perché quello che ottengo dalla tua domanda è che l'attività principale non è singletop, quindi potrebbe portare a un'altra istanza dell'attività principale chiamata una volta che l'attività principale viene lanciata dall'attività che è stata lanciata dall'attività di notifica.

Oppure è possibile specificare il lancio di lancio come attributo al tag dell'applicazione stesso nel manifest.

Altri suggerimenti

Uso il codice seguente per evitare più istanze dell'attività

Intent intent=new Intent(this,RICO.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_SINGLE_TOP);
PendingIntent contentIntent = PendingIntent.getActivity(this, 0, intent, 0);

Cambiare manifest non mi sembra appropriato

Ho problemi con entrambe le approvazioni. La notifica funziona perfetta solo in questa condizione: - Utilizzo del pulsante Indietro nell'attività principale (con la storia contenente solo quella attività) - non usando il pulsante Home - non utilizzando la notifica se l'attività che si chiama è in cima e attiva

In ogni altro caso, la notifica non può più chiamare in primo piano l'attività usando "Nuovo intento (...)"

Ho trovato la combinazione alchemica di opzioni manifest e bandiere degli intenti per ottenere ciò di cui avevo bisogno:

Intent intent= new Intent(this, YaampActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);

usando queste opzioni

android:launchMode="singleTask"
android:taskAffinity=""
android:excludeFromRecents="true"

All'interno dell'elemento.

Ora ho una notifica che genera l'attività principale (se tale attività non è già in primo piano) e il suo comportamento è corretto anche se l'attività è "chiusa" premendo il pulsante Home e/o quello posteriore.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top