我知道finish()会将您的活动恢复为之前的活动。现在我很好奇,如果我们能够完成相反的意思,转发回你没有做意图的下一个活动。这只是一个好奇的问题。
这可能吗?
答案 0 :(得分:4)
没有。当用户按下BACK时,“finish()
调用会破坏”您未执行意图后退出的“下一个活动”,因此您无法返回该活动。
答案 1 :(得分:3)
不,这是不可能的,一旦你对活动运行完成()(或按回)它将从活动堆栈中加载,并且收集其内容垃圾,只有通过启动它才能再次到达和意图。
答案 2 :(得分:2)
简短回答:不,因为完成()ed的活动被破坏了。
答案很长:来自Activity Documentation
onDestroy() - 您在活动之前收到的最后一个电话 销毁。这可能是因为活动正在结束 (有人称之为finish(),或者因为系统是暂时的 破坏活动的这个实例以节省空间。
调用finish()实际上并不能保证活动的即时GC,但在调用finish()后很快就会符合条件。如果没有持久化,您可以假设活动实例中的任何内容都已消失。不要按照Activity Lifecycle和Avoiding Memory Leaks来控制Android所说的应该是可以杀戮的活动,这不是解决这个问题的方法,而且是一个坏主意(tm)。
如果您想在应用程序中存储活动历史记录,可以覆盖OnDestroy()并检查isFinishing(),这样您就可以手动实现类似“转发”功能的功能,但一般来说,最好先做一些事情。就像在onSaveInstanceState()中一样。
答案 3 :(得分:0)
不,因为一旦你调用了finish()方法,它就会破坏相应的活动。伴随你的任务的唯一方法是使用意图。