Android获得以前的活动

我有2个活动: Activity1Activity2 。 在每个活动中都有一个button,让我进入第三个活动( MainActivity )。 在MainActivity我想知道从哪个活动页面被调用。

您可以使用Intent的putExtra属性来传递活动的名称。

调用活动,

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

下一个活动,

 Intent intent = getIntent(); String activity = intent.getStringExtra("activity"); 

现在,在string活动中,您将获得来自哪个活动的名称。

您可以使用:

 public ComponentName getCallingActivity() 

要知道哪些活动称为您当前的Activity

使用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 } 
 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> 

当你从一个活动转移到另一个活动时,你可以传递下面给出的活动名称

 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()); 

我认为这可以解决你的问题