Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/195.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 与finish()相反_Android - Fatal编程技术网

Android 与finish()相反

Android 与finish()相反,android,Android,我知道finish()会将您的活动返回到以前的活动。现在我很好奇,我们是否能够实现相反的意思,即返回到下一个你放弃的活动,而没有做任何打算。这只是一个好奇的问题 这可能吗 否。当用户按下“后退”键时,调用finish()会破坏“您在没有执行意图的情况下退出的下一个活动”,因此您无法返回该活动 不,这是不可能的,一旦您对某个活动运行finish()(或按back键),它将从活动堆栈中弹出,并对其所有内容进行垃圾收集,唯一的方法是再次使用和意图启动它。简短回答:不,因为finish()启动的活动已被

我知道finish()会将您的活动返回到以前的活动。现在我很好奇,我们是否能够实现相反的意思,即返回到下一个你放弃的活动,而没有做任何打算。这只是一个好奇的问题


这可能吗

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

不,这是不可能的,一旦您对某个活动运行finish()(或按back键),它将从活动堆栈中弹出,并对其所有内容进行垃圾收集,唯一的方法是再次使用和意图启动它。

简短回答:不,因为finish()启动的活动已被销毁

答案很长:从

onDestroy()-活动结束前收到的最后一个呼叫 摧毁。这可能是因为活动正在完成 (有人对其调用finish(),或者因为系统暂时关闭 正在销毁此活动实例以节省空间

调用finish()实际上并不能保证立即对活动执行GC,但在调用finish()之后,它将很快成为合格的。你可以假设活动实例中的任何内容如果没有被持久化,就会消失。请不要保留对Android所说的应该可以终止的活动的引用,而且,这不是一种回避问题的方法,是一个坏主意(tm)


如果要在应用程序中存储活动历史记录,可以重写OnDestroy()并选中isFinishing(),这样就可以手动实现类似“转发”的功能,但一般来说,最好在onSaveInstanceState()中执行类似的操作。

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

我不这么认为。我认为完成后,活动由GC维护,并且结束。您应该自己维护您的活动。