我正在进行详细活动,我想回到家庭活动,按下后退按钮和在详细活动上调用完成方法有什么区别?
答案 0 :(得分:12)
如果您尚未从onBackPressed()
覆盖Activity
方法,则会为finish()
调用Activity
。您无需明确调用finish()
..
因此,它会显示Activity
顶部的Activity Stack
。然后有empty Stack
,那么你将完全从应用程序中获得。
如果您有覆盖onBackPressed()
方法,则必须明确调用finish()
以销毁活动。
答案 1 :(得分:3)
您可以从代码中拨打finish()
;你不能按代码中的后退按钮。通常,按后退按钮会调用finish()
。不同之处在于您是希望代码还是用户启动操作。
答案 2 :(得分:2)
当我得到完成和后退按钮破坏活动。我发现的唯一区别是,当你按下后退按钮时,它会被调用。 onBackPress事件
答案 3 :(得分:0)
onBackPressed:
如果您在活动中定义onBackPressed()方法,则意味着您要覆盖 backButton的默认行为是当您按下后退按钮时调用onBackPressed()方法。
如果您尚未从Activity中覆盖onBackPressed()方法, 它将为您的Activity调用finish()。您无需显式调用finish()。 它将显示“活动”,它位于“活动堆栈”的顶部,并且有空的堆栈,然后您将 从应用程序。如果您有Override onBackPressed()方法,则必须显式调用finish() 破坏活动。
完成:
如果实现finish()方法,则打算关闭当前的Activity。如果您的应用程序没有顶级backstack,则会重定向到android主屏幕。在活动上调用finish()时,将执行onDestroy()方法。 此方法可以执行以下操作:
此外,onDestroy()也不是析构函数。它实际上并没有破坏对象。这只是基于特定状态调用的方法。 因此,在超类的onDestroy()运行并返回后,您的实例仍然存在并且运行良好*。 用户想要重新启动应用程序,这将加快启动阶段。该过程不会做任何事情,如果需要回收内存, 该过程将被杀死