2012-05-03 40 views
0

假设:我有两个类MainActivity和SecondActivity将某个活动带到前面

首先,我的应用程序以MainActivity的一个实例开始。在MainActivity中,有几个按钮会在单击时启动SecondActivity。每次启动一个SecondActivty,我都会通过putExtra函数将一个diffirent参数添加到该SecondActivity中,因此每个SecondActivity都会显示每个不同的内容。

而且我用这个代码SecondActivity:

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_BACK) { 
     moveTaskToBack(true); 
     return true; 
    } 
    return super.onKeyDown(keyCode, event); 
} 

所以每次后退按钮被按下的SecondActivity,也不会被破坏。

现在,例如,我有这样的场景:

MainActivity == click_a_button ==> SencondActivity(INSTANCE1) == press_back_button ==> MainActivity == click_another_button ==> SecondActivity(INSTANCE2)== press_back_button ==> MainActivity (*)

停止在步骤(*):从这里(在MainActivity中),用户按下启动的按钮instance1,我的问题是如何使SecondActivity(instance1)到达前面?

P/S:我读了约Intent.FLAG_ACTIVITY_REORDER_TO_FRONT,但不知道如何在我的情况下使用它。

+0

我想如果你按后退按钮上的活动实例,它会由SO被破坏,你将不能够带来正面的INSTANCE1 – digulino

+0

我有行'moveTaskToBack(真);'在我的SecondActivity中,所以它不会被破坏 – Leo

+0

我觉得你很困惑。 'moveTaskToBack()'不会改变任务内活动的顺序。似乎你正在经历很多麻烦才能避开标准行为。当用户使用“返回”按钮返回MainActivity时,为什么不让SecondActivity完成(并销毁),并让用户选择下一件事情时创建一个新的SecondActivity实例。你的方法背后的推理是什么? –

回答

0

将您的SecondActivity的lanchMode设置为SingleTop。

 <activity 
     android:name=".SecondActivity" 
     android:launchMode="singleTop" > 
    </activity> 
+0

你可以用示例代码解释更多关于你的想法吗?谢谢 – Leo

+0

对不起,我的意思是Java代码,它可以帮助将SecondActivity的一个实例带到字体中。 – Leo