2012-02-09 17 views
6

Im che ha un'applicazione che è SingleTask ed è in grado di ascoltare lo schema 'testing'.Android onNewIntent dal programma di avvio delle applicazioni mi dà l'ultima intenzione

Se fa clic sul pulsante (vedi codice) mi rilanciare me e onNewIntent si chiama avermi dato l'intento 'testing' (Ora potrei reagire a questa spingendo un frammento)

Ora Se premo casa e poi apri il launcher dell'applicazione e reinserisci la mia applicazione Vorrei che onNewIntent venga chiamato ma con un intento vuoto, perché non desidero ripetere le mie azioni (ad esempio, spingendo i frammenti). Ma onNewIntent mi sta dando l'ultima intenzione che è stata utilizzata per avviare la mia attività, che è l'intento di "testare".

Cosa devo fare per evitare di spingere lo stesso frammento? C'è un modo carino senza usare i miei id.

public class OnNewIntentTestActivity extends Activity { 
/** Called when the activity is first created. */ 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    Log.e("", "on create"); 

    ((Button) findViewById(R.id.button1)).setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      Log.e("", "Relaunch activity"); 
      startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("testing://hello"))); 

     } 
    }); 
} 

@Override 
protected void onNewIntent(Intent intent) { 
    super.onNewIntent(intent); 

    Log.e("", "onNewIntent: " + (intent == null? "none" : (intent.getAction() + ":" + intent.getData()))); 
} 
} 

risposta

0

setIntent (null); dopo aver ottenuto i dati necessari su onNewIntent

Problemi correlati