启动,后退,主屏幕键

应用启动后,被调用的三个生命周期方法

(如看不到过滤后的信息列表,请选择LogCat左边窗口的QuizActivity过滤项。)

现在我们来做个有趣的实验。在设备上单击后退键,再查看LogCat。可以看到,日志显示QuizActivityonPause()onStop()onDestroy()方法被调用了,如图3-7所示。

启动,后退,主屏幕键_第1张图片

图3-7 单击后退键销毁activity

单击设备的后退键,相当于通知Android系统“我已完成acitivity的使用,现在不需要它了。”接到指令后,系统立即销毁了acitivity。这实际是Android系统节约使用设备有限资源的一种方式。

重新运行GeoQuiz应用。这次,选择单击主屏幕键,然后查看LogCat。日志显示系统调用了QuizActivity的onPause()onStop()方法,但并没有调用onDestroy()方法,如图3-8所示。

启动,后退,主屏幕键_第2张图片

图3-8 单击主屏幕键停止activity

要在设备上调出任务管理器,如果是比较新的设备,可单击主屏幕键旁的最近应用键,调出任务管理器,如图3-9所示。如果设备没有最近应用键,则长按主屏幕键调出任务管理器。

启动,后退,主屏幕键_第3张图片

图3-9 主屏幕键,后退键以及最近应用键

在任务管理器中,单击GeoQuiz应用,然后查看LogCat。日志显示,activity无需新建即可启动并重新开始运行。

单击主屏幕键,相当于通知Android“我去别处看看,稍后可能回来。”此时,为快速响应随时返回应用,Android只是暂停当前activity而并不销毁它。

需要注意的是,停止的activity能够存在多久,谁也无法保证。如果系统需要回收内存,它将首先销毁那些停止的activity。

最后,想象一下存在一个会部分遮住当前activity界面的小弹出窗口。它出现时,被遮住的activity会被系统暂停,用户也无法同它交互。它关闭时,被遮住的activity将会重新开始运行。

你可能感兴趣的:(启动,后退,主屏幕键)