Android obtenir l’activité précédente

J’ai 2 activités: Activity1 et Activity2 . Dans chacune de ces activités, il y a un bouton qui me mène à une troisième activité ( MainActivity ). Dans MainActivity je veux savoir à partir de quelle page d’activité a été appelée.

Vous pouvez utiliser l’atsortingbut putExtra de l’intention pour transmettre le nom de l’activité.

Activité d’appel,

 Intent intent = new Intent(this, Next.class); intent.putExtra("activity","first"); startActivity(intent); 

Activité suivante,

 Intent intent = getIntent(); Ssortingng activity = intent.getSsortingngExtra("activity"); 

Maintenant, dans l’activité de chaîne, vous obtiendrez le nom de l’activité à laquelle il est venu.

Vous pouvez utiliser:

 public ComponentName getCallingActivity() 

pour savoir quelle activité a appelé votre Activity actuelle.

Utilisez putExtra () pour identifier l’activité précédente.

 Intent i = new Intent(Activity1.this, MainActivity.class).putExtra("from", "activity1"); startActivity(i); 

Pour vérifier l’activité dans l’activité principale,

 if(getIntent().getSsortingngExtra("from").equals("activity1")){ //From Activity 1 }else { // Activity 2 } 

Lorsque vous passez d’une activité à une autre, vous pouvez passer l’activité Nom indiqué ci-dessous

 Intent i = new Intent(this, deliveries.class); i.putExtra("ActivityName", "ActivityOne"); startActivity(i); 

et vérifier le nom de l’activité dans l’autre activité

 Bundle extra = getIntent().getExtras(); Ssortingng activityName = Long.parseLong(extra.getSerializable("ActivityName") toSsortingng()); 

Je pense que cela peut résoudre votre problème

quand vous commencez votre activité:

 Intent intent = new Intent(activity, HistoryDetailsResults.class); intent.putExtra(Activity.ACTIVITY_SERVICE, activity.getLocalClassName()); activity.startActivity(intent); 

Utiliser Activity.ACTIVITY_SERVICE Je suppose que vous utilisez une bonne pratique. ( Activity.ACTIVITY_SERVICE est la Ssortingng : ‘activity’ )

activity.getLocalClassName() donne ceci: view.YourActivity comme Ssortingng

EDIT: Au lieu d’utiliser activity.getLocalClassName activity.getLocalClassName() je préfère utiliser activity.getClass().getSimpleName()

Étape 1 dans votre activité de départ

 Intent intent = new Intent(activity, HistoryDetailsResults.class); intent.putExtra(Activity.ACTIVITY_SERVICE, activity.getClass().getSimpleName()); activity.startActivity(intent); 

Étape 2 de votre activité de destination

 Intent intent = getIntent(); Ssortingng startActivity = intent.getSsortingngExtra(Activity.ACTIVITY_SERVICE) Ssortingng activityToCompare = YourActivityToCompare.class.getSimpleName() 

Et ce que vous voulez faire:

 if( startActivity.equalsIgnoreCase(activityToCompare) { //Do what you want } 
 ActivityManager am = (ActivityManager) this.getSystemService(Activity.ACTIVITY_SERVICE); Ssortingng packageName = am.getRunningTasks(1).get(0).topActivity.getPackageName(); Ssortingng className = am.getRunningTasks(1).get(0).topActivity.getClassName(); 

et nous avons mis la permission: