У меня есть 2 действия: Activity1
и Activity2
.
В каждом из этих действий есть кнопка, которая ведет меня к третьему действию (MainActivity
). В MainActivity
я хочу знать, с какой страницы была вызвана страница.
Android получает предыдущую активность
Ответ 1
Вы можете использовать атрибут putExtra для Intent для передачи имени Activity.
Вызывающая активность,
Intent intent = new Intent(this, Next.class);
intent.putExtra("activity","first");
startActivity(intent);
Следующая активность,
Intent intent = getIntent();
String activity = intent.getStringExtra("activity");
Теперь в строковой активности вы получите имя, из которого произошла операция.
Ответ 2
Вы можете использовать:
public ComponentName getCallingActivity()
чтобы узнать, какая активность вызвала ваш текущий Activity
.
Ответ 3
Используйте putExtra() для идентификации предыдущего действия.
Intent i = new Intent(Activity1.this, MainActivity.class).putExtra("from", "activity1");
startActivity(i);
Чтобы проверить активность в Основной деятельности,
if(getIntent().getStringExtra("from").equals("activity1")){
//From Activity 1
}else {
// Activity 2
}
Ответ 4
Когда вы переходите от одной активности к другой, вы можете передать название деятельности, как указано ниже
Intent i = new Intent(this, deliveries.class);
i.putExtra("ActivityName", "ActivityOne");
startActivity(i);
и проверьте имя активности в другом действии
Bundle extra = getIntent().getExtras();
String activityName = Long.parseLong(extra.getSerializable("ActivityName")
toString());
Я думаю, что он может решить вашу проблему
Ответ 5
ActivityManager am = (ActivityManager) this.getSystemService(Activity.ACTIVITY_SERVICE);
String packageName = am.getRunningTasks(1).get(0).topActivity.getPackageName();
String className = am.getRunningTasks(1).get(0).topActivity.getClassName();
и мы установили разрешение:
<uses -permission="-permission" android:name="android.permission.GET_TASKS">
</uses>