io chiamo un 'attività per il risultato:Android, finitura() chiude INSEAD applicazione di attività
private static final int CODE_LOGIN = 0;
private static final int CODE_DETAILS = 1;
private void callDetailsActivity() {
Intent switchToDetailsActivity = new Intent(getApplicationContext(), Details.class);
switchToDetailsActivity.putExtra(TAG_ID, details.get(TAG_ID));
startActivityForResult(switchToDetailsActivity, CODE_DETAILS);
}
Ora nel mio Details.class invito a tornare all'attività precedente:
@Override
public void onBackPressed() {
setResult(RESULT_OK);
super.onBackPressed();
}
E poi il mio onActivityResult()
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
if (requestCode == CODE_LOGIN) {
// This is for my other Activity, where the "return" works
}
}
updateOffers();
}
Ma per tornare alla mia precedente lezione l'applicazione è chiusa senza alcun registro degli errori. Quando premo il tasto home per andare alla mia domanda precedente, posso andare alla mia applicazione e quindi sono nella mia attività precedente, ma questo non è sicuramente il modo in cui dovrebbe funzionare.
Ho anche provato a non modificare onBackPressed()
, o semplicemente a scrivere finish()
in onBackPressed()
, ma non ha funzionato.
non ho impostato android:noHistory="true"
Con la mia altra attività (che utilizza excatly lo stesso codice), funziona perfettamente (CODE_LOGIN).
Qualcuno può aiutarmi?
Puoi anche condividere il codice per la "onActivityResult" nella prima azione? –
prova ad aggiungere super.onBackPressato in fondo a onBackPressed() e rimuovi i parametri dal nuovo Intent(). – Vijju
Stai chiamando 'finish()' dopo 'startActivityForResult'? – Doomsknight