不同 Intent 对象的相同 Activity 的多个实例

Multiple Instance of same Activity for different Intent Object

我的应用程序中有两个活动:-
Main Activity:- 显示城市列表
CityActivity:- 显示 selected 城市的详细信息。

问题是:- 如果我 select MainActivity 中的一个城市 "NewYork" 它会带我到 CityActivity 并显示 NewYork 详细信息。
如果返回并 select "San Francisco" 然后它将带我到城市 Activity 并显示旧金山的详细信息。

现在,当我按下 phone 设备后退按钮时,它会将我带到每个城市活动 "New York"、"San Francisco",...就像浏览器后退按钮一样。

我尝试了多个选项来修复它,但对我没有帮助:-
a.) 在 CityActivity.
调用 finish() b.) 在 Manifest 文件中添加 android:launchMode= "singleInstance".

我想在这里实现的是,如果带有 NewYork 对象的 CityActivity 存在于内存中并且我尝试 select "San Francisco" City,那么它应该用 "New York" Intent 对象并使用 "San Francisco" Intent 对象创建一个新的 activity。

在您的城市详细信息中 activity 添加此

@Override
public void onBackPressed() {
 finish();
}

就这些了

编辑 2: 打开详细信息时 activity 像这样调用它

 Intent i= new Intent(MainActivity.this,DetailsActivity.class);
 i.putExtra("Name",Name);
 ....
 startActivity(i);
 finish()//add this 

在详细信息中按下 activity 时执行此操作

@Override
public void onBackPressed() {
 Intent i= new Intent(DetailsActivity.this,MainActivity.class);
  startActivity(i);//starting main activity
 finish();
}

启动城市时设置意图标志“无历史记录”activity