后退按钮和完成后有什么区别?

时间:2013-01-31 18:27:58

标签: android

我正在进行详细活动,我想回到家庭活动,按下后退按钮和在详细活动上调用完成方法有什么区别?

4 个答案:

答案 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()运行并返回后,您的实例仍然存在并且运行良好*。 用户想要重新启动应用程序,这将加快启动阶段。该过程不会做任何事情,如果需要回收内存, 该过程将被杀死