2013-02-21 7 views
9

Ho un'app con due attività. Il primo è presentato con un unico pulsante che apre il secondo.Problemi con il tema traslucido

Ecco la definizione Manifiest per il primo:

<activity 
    android:name="com.example.buttonexample.MainActivity"> 
    <intent-filter> 
     <action android:name="android.intent.action.MAIN" /> 

     <category android:name="android.intent.category.LAUNCHER" /> 
    </intent-filter> 
</activity> 

Seconda azione:

<activity 
    android:name="com.example.buttonexample.MainActivity2" 
    android:label="@string/title_activity_main_activity2" android:theme="@android:style/Theme.Translucent"> 
</activity> 

Ecco come mi lancio la seconda attività (tramite OnClickListener per un pulsante sulla prima attività) :

public void startSecondActivityClick(View v) { 
    Intent startActivity2 = new Intent(this, MainActivity2.class); 
    startActivity(startActivity2); 
} 

Questo funziona bene, tuttavia quando eseguo il background dell'app colpendo ho io e in primo piano l'app. Sto notando che la prima attività si sta creando/distruggendo continuamente. Ho verificato questo mettendo un po 'di codice nel metodo onDestory ad incrementare un int statica:

private static int count = 0; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    count++; 

} 

protected void onDestroy() { 
    super.onDestroy(); 
    Log.i("MainActivity", String.format("Destroyed, %d", count)); 
} 

Ho anche notato che la rimozione del tema traslucido sembra risolvere il problema. La mia domanda è c'è un modo per traslucido o qualcosa di simile ma anche non riavviare? Inoltre, sono curioso del perché questo accada del tutto. Sto testando questo su 4.0.1 ICS su una galassia SIII.

+0

Cosa vuoi dire che crea e si distrugge continuamente? Vuoi dire che sta creando e distruggendo più volte quando visualizzi la seconda attività una sola volta? Puoi darci un esempio dell'output di Log? – spierce7

+0

Intendo onCreate e onDestroy vengono chiamati in rapida successione. Aggiungerò qualche output di registro. – noahd

+3

Ok dopo aver scavato sono riuscito a capire perché questo sta accadendo. Qualcuno ha attivato una delle opzioni sviluppatore, "non tenere attività.". Dopo averlo spento, questo ha smesso di accadere. Sospetto che ciò non si verificherebbe troppo spesso nella produzione poiché probabilmente la maggior parte delle persone non ha questa impostazione. – noahd

risposta

0

Ok, dopo alcuni scavi, sono riuscito a capire perché questo sta accadendo. Qualcuno ha attivato una delle opzioni sviluppatore, "non tenere attività.". Dopo averlo spento, questo ha smesso di accadere. Sospetto che ciò non si verificherebbe troppo spesso nella produzione poiché probabilmente la maggior parte delle persone non ha questa impostazione. Puoi trovarlo in Impostazioni -> "Opzioni sviluppatore" sulla maggior parte dei telefoni.