不同 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
我的应用程序中有两个活动:-
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