2012-02-09 10 views
6

Tengo una aplicación que es SingleTask y puedo escuchar el esquema 'testing'.Android onNewIntent desde el iniciador de aplicaciones me da el último intento

Si hago clic en el botón (véase el código) que relanzar mí y onNewIntent se llama darme la intención de 'prueba' (Ahora yo podría reaccionar a esta empujando un fragmento)

Ahora Si presiono casa y luego abrir el iniciador de aplicaciones y volver a ingresar a mi aplicación Me gustaría que se llamara onNewIntent pero con una intención vacía, porque no quiero volver a hacer mis acciones (por ejemplo, empujar fragmentos). Pero onNewIntent me está dando el último intento que se utilizó para iniciar mi actividad, que es el intento de "prueba".

¿Qué debo hacer para evitar empujar el mismo fragmento? ¿Hay una buena manera sin usar mis propios identificadores?

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()))); 
} 
} 

Respuesta

0

setIntent (null); después de obtener los datos que necesita en onNewIntent

Cuestiones relacionadas