à l'activité début pour résultat:Android - jeu de résultats de l'activité sur l'activité fermée
Intent intent = new Intent(MainActivity.this, DetailsActivity.class);
startActivityForResult(intent,EVENT_DETAILS_REQUEST);
Dans mon DetailsActivity, pour définir le résultat et les extras, qui peuvent être utilisés dans l'activité principale:
@Override
public void onBackPressed()
{
Intent resultIntent = new Intent();
resultIntent.putExtra("isEdited",isEdited);
setResult(RESULT_OK,resultIntent);
finish();
}
Enfin , dans MainActivity:
@Override
protected void onActivityResult(int requestCode, int resultCode, @NonNull Intent data)
{
switch(requestCode)
{
......
case EVENT_DETAILS_REQUEST:
boolean isEdited = data.getBooleanExtra("isEdited", false);
.......
break;
}
}
Ceci est bien tant que l'utilisateur utilise le bouton "Précédent" (ou barre de navigation système) pour fermer DetailsActivity. Si l'utilisateur appuie sur la flèche "Retour" en haut de l'activité pour fermer l'activité, onBackPressed
ne sera pas appelée et les données onActivityResult
seront nulles.
J'ai essayé d'utiliser , onStop
, onFinish
au lieu de onBackPressed
pour le gérer de travail, mais je reçois toujours data
pour onActivityResult
nulle.
Quelle est la bonne façon de résoudre mon problème?
Utilisez android: launchMode = "singleTop" dans le fichier manifeste .. –
Il est déjà là. – user1209216
Veuillez coller votre code onOptionsItemSelected. –