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()
Intent intent = new Intent(activity, HistoryDetailsResults.class); intent.putExtra(Activity.ACTIVITY_SERVICE, activity.getClass().getSimpleName()); activity.startActivity(intent);
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: