假设我们有一个默认的、具有默认行为的空活动,使用默认意图标志启动。用户按下设备上的后退按钮。活动消失了。。。但实际上是怎么回事?
- 按下后退按钮的行为是否与
finish()
相同 - 活动是否被无限破坏(称为
onDestroy
) - 活动是否保证会被破坏,但不会被无限地破坏
- 该活动是否有可能不会被销毁,并且在将来启动该活动时会重用该实例?(所以只调用
onPause
和onStop
->onStart
和onResume
?)
我正在寻找一个可靠的答案,所以如果你不完全确定这里发生了什么,请不要回答。
http://developer.android.com/training/basics/activity-lifecycle/recreating.html
这是安卓官方文档中的一个子章,用于解决您的问题。这是主题Managing the Activity Lifecycle
的一个子章,可在此处阅读:http://developer.android.com/training/basics/activity-lifecycle/index.html
这绝对值得阅读整章,以了解有关机器人活动行为的细节。但本分章(第一个链接)是这个问题的相关部分。
你应该看看这个试试这个
请具体说明您希望对默认活动的后退按钮做什么。。。。。。
当您按下back时(如果没有被键盘、碎片、活动等拦截),操作系统(可能通过ActivityManager)将尝试向用户显示当前任务中的前一个活动(同样,忽略碎片的后堆栈)。
如果没有这样的活动,任务将被终止,您将转到上一个任务——大多数时候是主屏幕,或者其他可能启动您应用程序的应用程序。
你很快就会接到onDestroy
的电话(这取决于开始下一个活动需要多长时间,但在一部好手机上,它应该在100-200ms以下)。
您的活动实例在onFinish
之后将不会被重用。这种情况发生在活动被销毁之前,因此如果您需要另一个相同类型的活动,操作系统将创建另一个实例。
当用户按下BACK键时,当前活动将从堆栈顶部弹出(该活动保证会被销毁,但不会立即销毁,可能是在系统资源不足时),并且上一个活动将恢复(其UI的上一状态将恢复)。
安卓系统上的后退按钮/后退键会触发哪些操作?
最终onDestroy()
被称为。。。。。在一些情况下,您的活动会由于正常的应用程序行为而被破坏,例如当用户按下"上一步"按钮或您的活动通过调用finish()
发出自身破坏的信号时。