android中的Activity堆栈问题

时间:2012-04-01 19:34:56

标签: android android-activity android-intent stack-trace

我是Android开发的新手,我开发了一个小应用程序,但我遇到了链接不同活动的问题(即以所需方式在活动之间导航)。 我很抱歉问这些问题,但我尝试了谷歌的不同解决方案,但它们都没有为我工作,我仍然不清楚这些概念。

Plz帮助

我有一些问题:

  1. 如何删除堆栈顶部的活动?

  2. 如何从活动堆栈中删除所有活动?

  3. Intent(A.this,B.class)与(Intent.FLAG_ACTIVITY_NO_HISTORY)不会将活动B添加到堆栈中,但如果我想将活动A添加到堆栈中该怎么办?

  4. 有没有办法可视化活动堆栈的内容(这有助于我在调用活动时设置适当的标志)?

  5. 我有一个活动A(有3个按钮)我从中调用活动B,我在那里完成了一些用户输入的操作,我想回到活动A但是我想只显示1个按钮那3个怎么办? (我遇到的问题是A中的活动有3个按钮所以我想通过删除它并制作新的意图重新启动它或者使堆栈中的相同条目再次启动,以便根据条件显示1个按钮)< / p>

  6. 提前致谢。

2 个答案:

答案 0 :(得分:5)

  

如何删除堆栈顶部的活动?

我不知道你认为“删除”对于活动意味着什么。我不知道你对活动的“堆栈顶”是什么意思。

假设您的意思是“如何销毁前台活动”,该活动可以自行调用finish()

  

如何从活动堆栈中删除所有活动?

你没有。您可以使用startActivity()Intent.FLAG_ACTIVITY_CLEAR_TOP来调用Intent.FLAG_ACTIVITY_SINGLE_TOP来销毁堆栈中的所有当前活动,并为您留下您现在正在开始的活动。

  如果我想补充活性的叠

意图(A.this,B.class)与(Intent.FLAG_ACTIVITY_NO_HISTORY)不会增加活动B叠,但什么?

致电startActivity()寻找A。

  

有没有办法可视化活动堆栈的内容(这有助于我在调用活动时设置适当的标志)?

您可以筛选adb shell dumpsys来获取此类信息,但这并不是特别友好。

对我来说,你的最后一个问题是不可理解的,对不起。

答案 1 :(得分:0)

回答最后一个qn: 使用startActivityForResult启动活动B并覆盖活动A中的onActivityForResult。当活动B完成/退出时,将调用onActivityResult。 您可以在onActivityResult中将Buttons的可见性设置为GONE / INVISIBLE。