11

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

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

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

4

5 回答 5

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

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

于 2012-07-23T14:15:45.347 回答
2

当您按下返回时,(如果没有被键盘、片段、活动等截获)操作系统(可能通过 ActivityManager)将尝试向用户显示当前任务中的先前活动(同样,忽略片段的回栈) .

如果没有这样的活动,任务将被终止,您将转到上一个任务 - 大多数时候是主屏幕或其他可能启动您的应用程序的应用程序。

onDestroy很快就会接到电话(这取决于开始下一个活动需要多长时间,但在一部好手机上应该在 100-200 毫秒以下)。

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

于 2012-07-23T11:10:20.253 回答
2

你用应该看看这个 试试这个

并请具体说明您希望对默认活动的后退按钮做什么......

于 2012-07-23T11:20:03.400 回答
1

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

Android 上的后退按钮/后退键会触发哪些操作?

于 2012-07-23T11:09:05.590 回答
0

肯定onDestroy()被称为.....在某些情况下,您的 Activity 由于正常的应用程序行为而被破坏,例如当用户按下后退按钮或您的 Activity 通过调用发出自己的破坏信号时finish()

于 2013-01-14T00:12:20.023 回答