2010-01-23 4 views
7

Ho un'applicazione con diverse attività. My A Activity ha i parametri del filtro Intent manifest: action.MAIN e category.LAUNCHER. dopo essere stato caricato, chiamo Activity B e finish() A poiché non lo uso più.Esegui applicazione Android dall'ultima attività

Dopo corro la mia applicazione, passare da Activity A a B e premere il tasto Home , quando ho rilanciare dal menu applicazioni o dal app mercato per es. (Non per una lunga pressione sul tasto Home), inizia dalla a Attività e non salvare la sua ultima attività B.

so per certo che questo è possibile rilanciare la domanda dalla sua ultima attività (alcune applicazioni dal mercato supportano ) e Penso che questo possa essere determinato dai parametri Manifest ma non so quale.

qualcuno sa come implementarlo in modo che la mia applicazione possa riavviare dall'ultima attività B?

Grazie ayanir

+0

Avete capito? In tal caso, si prega di condividere con noi ... –

risposta

1

Ci sono stati una serie di domande molto simili ultimamente. È una buona idea cercare prima nel sito per assicurarsi che non vengano poste domande duplicate.

Ad esempio, la domanda sotto riportata dice che questo comportamento stava accadendo perché lo sviluppatore stava avviando la propria applicazione usando il debugger di Eclipse. Un'altra persona stava riscontrando questo problema perché stava lanciando l'applicazione direttamente da Eclipse, piuttosto che avviarsi in modo pulito premendo manualmente l'icona di avvio.

Android: keep task's activity stack after restart from HOME

+0

Si noti che questo comportamento è stato corretto nella versione 0.9.6 del plugin ADT per Eclipse. –

0

quindi ci sono un paio di cose da considerare quando si sviluppa applicazioni in Android. E una delle grandi cose è l'Application Lifecyle, se non lo hai ancora suggerirei questo video. Quello che succede è che un'applicazione può essere uccisa e resettata in qualsiasi momento ed è necessario salvare lo stato dell'applicazione in modo da poterla ripristinare in qualsiasi momento. Se apri l'app dal programma di avvio, passerai sempre all'attività che avvia l'app, se desideri saltare all'attività successiva devi archiviare tali informazioni e quindi passare all'attività nel codice.
hanno anche uno sguardo a questa documentazione su SavingPersistentState

5

Anche se so che questa è una vecchia questione, ero alle prese con questo problema e non sono riuscito a trovare una risposta su SO. Quindi, ecco la mia risposta (molto newbie):

No, non penso che sia possibile farlo scherzando con manifest: è possibile avviare solo un'attività fissa per app dalla schermata principale. Quello che puoi fare, però, è avviare qualsiasi attività tu voglia da quel punto di partenza, e Android può farlo abbastanza velocemente da non vedere mai il primo.

Anche se questo si sente molto simile a un hack, ho implementato questo percorso nel metodo di attività di partenza onResume(), e utilizzati sharedPreferences per tenere traccia di quali attività da lanciare:

final Class<? extends Activity> activityClass; 
    SharedPreferences prefs = getSharedPreferences("sharedPrefs", MODE_PRIVATE); 
    int activityID = prefs.getInt("whichActivity", -1); 
    if (activityID == Constants.ACTIVITY_ID_MAINSCREEN) { 
     activityClass = MainScreen.class; 
    } else { 
     activityClass = null; return; 
    } 
    Intent newActivity = new Intent(this, activityClass); 
    this.startActivity(newActivity);