Android后退按钮行为

时间:2012-07-23 10:58:00

标签: android android-activity onresume onpause ondestroy

假设我们有一个带默认行为的默认空活动,使用默认意图标志启动。用户按下设备上的后退按钮。活动消失了......但实际上怎么样?

  • 按下后退按钮的行为方式与finish()相同吗?
  • 活动是否立即销毁(onDestroy被调用)?
  • 活动是否保证会被销毁,但不能立即销毁?
  • 是否有可能不会销毁活动,并且在将来启动此活动时将重复使用此实例? (所以只调用onPauseonStop - > onStartonResume?)

我正在寻找一个可靠的答案,所以如果你不完全确定这里会发生什么,请不要回答。

5 个答案:

答案 0 :(得分:6)

http://developer.android.com/training/basics/activity-lifecycle/recreating.html

这是解决您问题的官方Android文档的子章节。它是主题Managing the Activity Lifecycle的一个子章节,可以在这里阅读: http://developer.android.com/training/basics/activity-lifecycle/index.html

了解有关Androids Activity行为的详细信息绝对值得阅读整章。但是,分章(第一个链接)是这个问题的相关部分。

答案 1 :(得分:2)

当您按下时,(如果没有被键盘,片段,活动等等截获),操作系统(可能通过ActivityManager)将尝试向用户显示当前任务中的上一个活动(同样,忽略片段'后筹码。)

如果没有此类活动,任务将被终止,您将转到上一个任务 - 大部分时间的主屏幕或可能已启动您的应用程序的其他应用程序。

你很快就会被onDestroy召唤(这取决于开始下一个活动需要多长时间,但是在好的手机上它应该在100-200ms之内)。

onFinish后您的活动实例不会被重复使用。这在活动被销毁之前发生,因此如果您需要另一个相同类型的活动,操作系统将创建另一个实例。

答案 2 :(得分:2)

您使用的应该查看此try this

请告诉具体你想用默认活动的后退按钮做什么......

答案 3 :(得分:1)

当用户按下BACK键时,当前活动从堆栈顶部弹出(保证活动被销毁,但不是立即销毁,可能是系统资源不足时),之前的活动恢复(其UI的先前状态已恢复。)

Which actions does the back button/back key on Android trigger?

答案 4 :(得分:0)

默认onDestroy()被调用.....在某些情况下,您的活动会因应用程序的正常行为而被销毁,例如当用户按下“返回”按钮或您的活动发出自己的销毁信号时致电finish()