完成对面()

时间:2012-03-27 20:33:58

标签: android

我知道finish()会将您的活动恢复为之前的活动。现在我很好奇,如果我们能够完成相反的意思,转发回你没有做意图的下一个活动。这只是一个好奇的问题。

这可能吗?

4 个答案:

答案 0 :(得分:4)

没有。当用户按下BACK时,“finish()调用会破坏”您未执行意图后退出的“下一个活动”,因此您无法返回该活动。

答案 1 :(得分:3)

不,这是不可能的,一旦你对活动运行完成()(或按回)它将从活动堆栈中加载,并且收集其内容垃圾,只有通过启动它才能再次到达和意图。

答案 2 :(得分:2)

简短回答:不,因为完成()ed的活动被破坏了。

答案很长:来自Activity Documentation

  

onDestroy() - 您在活动之前收到的最后一个电话   销毁。这可能是因为活动正在结束   (有人称之为finish(),或者因为系统是暂时的   破坏活动的这个实例以节省空间。

调用finish()实际上并不能保证活动的即时GC,但在调用finish()后很快就会符合条件。如果没有持久化,您可以假设活动实例中的任何内容都已消失。不要按照Activity LifecycleAvoiding Memory Leaks来控制Android所说的应该是可以杀戮的活动,这不是解决这个问题的方法,而且是一个坏主意(tm)。

如果您想在应用程序中存储活动历史记录,可以覆盖OnDestroy()并检查isFinishing(),这样您就可以手动实现类似“转发”功能的功能,但一般来说,最好先做一些事情。就像在onSaveInstanceState()中一样。

答案 3 :(得分:0)

不,因为一旦你调用了finish()方法,它就会破坏相应的活动。伴随你的任务的唯一方法是使用意图。