2015-04-25 34 views
0

我的应用程序中有两个活动: -
主要活动: - 显示城市列表
城市活动: - 显示所选城市的详细信息。

对于不同的意图对象的同一活动的多个实例

的问题是: - 如果我选择的城市“纽约”在MainActivity它带我到CityActivity,显示纽约的详细信息。
如果返回并选择“旧金山”,那么它会将我带到CityActivity并显示旧金山的详细信息。

现在当我按下手机设备它带我去到每个城市活动“纽约”,“旧金山”,......跟浏览器后退按钮一样。

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

我想在这里实现的是,如果具有NewYork对象的CityActivity存在于内存中,并且我尝试选择“San Francisco”城市,那么它应该用“New York”Intent对象摧毁活动并创建一个新活动与“旧金山”意图对象。

回答

0

故意设置标志“没有历史”出发城市活动

+0

试了一下,部分工作。它确实从堆栈中删除活动。但是我想要的只是在新的City对象启动活动时删除它,否则显示旧的City对象。 – Villie

+0

尝试将意向标志设置为FLAG_ACTIVITY_REORDER_TO_FRONT –

+0

完美!正是我在找什么。非常感谢! – Villie

0
在你的城市细节活动

添加此

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

这一切

编辑2: 打开详细活动时这样称呼它

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

时后挤压在细节活动中做到这一点

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

它并不总是回按下的旧的活动依然时。有时候,活动仍然是一个通知来到主页面。从那里我选择另一个城市,然后CityActivity与两个城市在一起。还有其他建议吗? – Villie

+0

看到我的编辑2 ..和报告 –

相关问题