Domanda

Vedere Aggiornamento 2 per il problema corrente riguardante la modalità di lancio delle attività

Sto sviluppando un'app Android. Ora ho il problema che una volta apporto una nuova attività (che non è l'attività con android.intent.action.MAIN e android.intent.category.LAUNCHERGode) nell'app, quindi premere il pulsante Home, quindi premere l'icona dell'app, l'app non mi naviga al nuovo Attività che ho già aperto (e mostrato nell'elenco delle app recenti). Invece, apri una nuova attività principale.

Cosa devo fare per cambiare questo comportamento?

===================================================

Aggiornamento

Codice per Avvia attività Altro dall'attività principale

    startActivity(new Intent(MainActivity.this, LocalActivity.class));
.

AndroidManifest.xml

    <activity
        android:name=".MainActivity"
        android:theme="@style/AppDrawTheme"
        android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:name=".LocalActivity"
        android:launchMode="singleInstance"
        android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
        android:screenOrientation="portrait">
    </activity>
.

===================================================

Aggiorna 2

risolto il problema per modificare android:launchMode="singleInstance". per android:launchMode="singleTask"

Anche se non capisco perché singleInstance sarebbe un problema. Come dovrei capire cosa scrivere Google sul documento Android "tranne che il sistema non avvia altre attività nel compito che tiene l'istanza" ?

È stato utile?

Soluzione

La maggior parte probabilmente stai impostando flag Intent che causano questo quando si chiama startActivity() o si utilizzano le proprietà dell'attività in AndroidManifest.xml che causano questo. Dovrei vedere il tuo manifesto o il tuo codice per indicare dove è esattamente il problema.

Aggiornato

Google Documenti dice anche:

.

L'attività è sempre il singolo e unico membro del suo compito.

Dovresti passare attraverso Questa pagina e leggi attentamente su compiti e attività.

Fondamentalmente, quando si avvia la tua attività principale è stata creata all'interno del nuovo compito. Le attività successive sono posizionate nello stesso compito (nella pila). Ora, la parte cruciale, Android non ripristina solo attività singola, ma intera attività. Questo è predefinito.

Nel caso in cui si utilizzi singleInstance ogni attività ha attività propria e quando si avvia nuovamente l'app (dopo il pulsante Home) Android ripristinare l'attività con l'attività di root, non quella con l'ultima attività vista. Stai molto attento quando cambi launchMode, se non è chiaro come funziona, dovresti probabilmente trovarlo prima, altrimenti potresti avere più sorprese in futuro.

Spero che sia chiaro ora per te, se non per favore leggi Documentazione collegata.

Altri suggerimenti

Dovresti usare onPause() e onResume() nella tua attività.

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