Android 暂停和恢复Activity

2019-12-10 18:49:15于海丽
在正常的应用程序使用,前台activity有时会被其他可视化组件遮挡,从而 造成activity的暂停。例如,当一个半透明的activity打开时(如在一个风格对话框),以前的activity就暂停了。只要 activity仍然是部分可见,但目前没有获得焦点,它就依然处于暂停状态  

暂停和恢复Activity(Pausing and Resuming an Activity)

一个Activity是一个应用程序组件,提供一个屏幕,用户可以用来交互为了完成某项任务,例如拨号、拍照、发送email、看地图。每一个activity被给予一个窗口,在上面可以绘制用户接口。窗口通常充满屏幕,但也可以小于屏幕而浮于其它窗口之上。

  一个应用程序通常由多个activities组成,他们通常是松耦合关系。通常,一个应用程序中的activity被指定为"main"activity,当第一次启动应用程序的时候呈现给用户的那个activity。每一个activity然后可以启动另一个activity为了完成不同的动作。每一次一个activity启动,前一个activity就停止了,但是系统保留activity在一个栈上(“back stack”)。当一个新activity启动,它被推送到栈顶,取得用户焦点。Back Stack符合简单“后进先出”原则,所以,当用户完成当前activity然后点击back按钮,它被弹出栈(并且被摧毁),然后之前的activity恢复。

  当一个activity因新的activity启动而停止,它被通知这种状态转变通过activity的生命周期回调函数。有许多回调函数一个activity可能会收到,源于它自己的状态变化-无论系统创建它、停止它、恢复它、摧毁它-并且每个回调提供你完成适合这个状态的指定工作的机会。例如,当停止的时候,你的activity应该释放任何大的对象,例如网络数据库连接。当activity恢复,你可以重新获得必要的资源和恢复被中断的动作。这些状态转换都是activity的生命周期的部分。

在正常的应用程序使用,前台activity有时会被其他可视化组件遮挡,从而 造成activity的暂停。例如,当一个半透明的activity打开时(如在一个风格对话框),以前的activity就暂停了。只要 activity仍然是部分可见,但目前没有获得焦点,它就依然处于暂停状态。

然而,一旦activity被完全遮挡住,并且对用户不可见了,那么它就停止了 (这是下一课需要讨论的内容)。

当你的activity进入暂停状态,系统将对你的Activity调用 onPause()方法。在此方法中,你可以停止那些在暂停状态时不应该继续进行的行为(如视频播放),或者持久化一些需要永久保存的信息,以使得用户继 续留在你的应用程序。如果用户返回到你的activity,系统将从暂停状态中恢复它,并调用onResume()方法。