2012-02-18 58 views
3

我怎么能弄清楚哪些活动将在当前活动的的onStop()方法旁边的onStop()之后,通过启动与startActivity一个新的活动被调用()?查找的onStop下一个活动()调用时startActivity

我现在唯一的想法是: 声明我用作全局变量的意图并使用intent.getClass()或类似方法在onStop()方法中检查它。这会好吗?不知何故,感觉就像快速和肮脏的方法。

感谢您的帮助!

编辑: 因此,这里的情景:

活性1是一个列表视图,用户可以选择一个或多个行,然后点击“提交”,现在所有选定的线路在后台任务提交到服务器。

我使用数组在我的服务,所以如果用户离开列表视图没有击中提交该阵列仍然充满过时的选择存储选择的ID的submissin之前。

因此,如果用户选择一个或多个行,然后退出Activity1而没有“提交”,我希望选择被放弃,所以我确实调用了一个方法在Activity1的onStop()方法中清除该数组。这很好,但是离开Activity1有不同的方法。例如,我确实有一个有3个条目的上下文菜单,其中每个条目都启动另一个活动。

现在我需要保持我的数组值,以防止从上下文菜单中选择一个特殊的单个活动(假设Activity2)。

对不起,如果这不明确,但我不是在谈论活动实例,而是关于一般活动的类型。

因此,所有我需要在的onStop()方法知道的是,如果我们从活动1切换到Activity2.java或Activity3.java。

也许Activity1的onStop()甚至不是我明确或不明确的决定的正确位置?

再次感谢

回答

1

您可能要添加一些澄清你的意图在这里,因为这个问题是有点含糊。

默认情况下,当一个Acitvity启动时,它被放置在一个称为回栈的队列中。当活动结束时,它被取出,前一个活动被带到前台。

开始一个新的活动时,与如果不设置正确,你将创建活动的新实例,即使一个在后面堆栈已经存在Becareful。如果我理解你的问题,你要寻找:

Intent intent = new Intent(getContext(), NewClass.class); 
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
startActivity(intent); 

这将清除栈除了提到的活动,并把它带到了前台,如果在后面堆栈存在。

This SO thread说明如何清除栈(Android guide)。

看一看here,其中介绍了如何管理任务和活动,但谷歌警告不要操纵默认beahviour。

+0

嗨,刚刚编辑的问题。我希望这可以更清楚一点。谢谢! – homtg 2012-02-22 18:34:47

相关问题