2012-02-15 14 views
6

Ho un problema con l'avvio di attività nel mio progetto.Attività Launcher + singleTask in Android

La mia attività "Home" (H) consente di scegliere alcuni servizi al suo interno. Diciamo che S11 -> ...-> S1n è un flusso di attività per il servizio (S1). H è l'attività di LAUNCHER per la mia app.

Inoltre, ho bisogno di passare a un'altra app da H e ritorno ad esso. Dato che non posso modificare il comportamento di questa app, devo dichiarare la mia attività H come 'singleTask' per evitare di avere diverse istanze di esso nel mio stack di attività.

Il problema è che la mia app non può essere rilanciato senza tagliare via le attività che erano stati spinti dopo H. Così, per esempio se ho H-S11-S12, quindi premere HOME e rilanciare dal menù recenti applicazioni ottengo H come un'attività in primo piano.

Qualche idea? C'è un modo per far funzionare questa combinazione? Grazie!

+0

si può spiegare con esempi migliori, che cosa si intende per necessità di passare a un'altra applicazione da H e di nuovo esso, e le attività S11 ....? – user2450263

+0

quindi il problema è che quando riapri l'app dall'elenco delle app recenti, le altre attività nello stack dovrebbero rimanere nello stack, giusto? – himanshu1496

+0

Come si avvia "l'altra app"? Non riesco a vedere come causa più istanze della tua attività H. – totoro

risposta

-1

Non è necessario il SingleTask. Utilizzare startActivityForResult anziché startActivity. Oppure utilizzare Fragments invece di Activities

startActivityForResult(new Intent(H.this,S11),1); 

public onActivityResult(int requestCode){ 
    if(requestCode == 1){ 
     startActivityForResult(new Intent(H.this,S12),2); 
    }else if(requestCode == 2){ 
     startActivityForResult(new Intent(H.this,S12),3); 
    } 
    ... 
} 
Problemi correlati