前言:
学习Android也有一年多了,目前在从事Android开发的工作。不敢说精通,但也小有心得。相信很多android初学者和我刚开始接触android时一样,往往只了解某些知识点的表面,别人要是问点啥,还真就说不出个一二三来,往往处于“了解”阶段。所以,我打算将自己学习android的过程和经验总结整理一下,发表出来,希望对学习android的同学有所帮助,也算给自己的学习进行总结吧。生命不息,学习不止。一定要学会“享受”学习的过程,否则,学习起来就会很累。
在我的学习过程中,有一点经验和大家分享一下,那就是“Deep Learning”:深入学习。多花点时间深入学习,总比走马观花强得多。有的时候,我们不是学不会,而是学的太快了,忘得也快。倒不如一个知识点一个知识点的慢慢学,学懂,完全掌握。今天,就先说说Activity的生命周期吧,很多面试官都喜欢问这个问题。。。其实很简单,就是记住一些回调函数被触发的时机。
取消之前博客的原因:因为之前访问量达到了15W,然后去申请了博客专家,但是被驳回了,给了一个准专家的称号,那个准专家的图标特别难看,每次写文章看那个图标都非常不爽,而且还删不掉。我看着这个准专家的图标实在是没法安心写博客,所以就重新申请了一个博客。ps:我就是这样一个有强迫症的程序猿。
Activity这个类,定义了一些回调函数来控制它的生命周期。
- onCreate() —— 当Activity第一次创建的时候被调用。
- onStart() —— 当Activity对用户可见的时候被调用。
- onResume() —— 当Activity开始和用户交互的时候被调用。
- onPause() —— 正在运行的Activity马上要被暂停的时候被调用,此时,在这之前的Activity被重新获取。
- onStop() —— 当Activity不在对用户可见的时候被调用。
默认地,被创建的Activity中都包含一个onCreate()方法,通过这个方法,可以创建显示给用户的UI组件。
从“被创建”到“被销毁”的生命周期图示:
想要理解Activity生命周期的最好办法就是创建一个工程,并实现所有的回调函数,然后让Activity与用户交互。
1、创建一个工程:Activity101。
2、Activity101Activity.java中的代码。
3、按F11在模拟器上调试。
4、当这个activity第一次被加载:
- 03-2301:54:32.602:D/Lifecycle(644):IntheonCreate()event
- 03-2301:54:32.602:D/Lifecycle(644):IntheonStart()event
- 03-2301:54:32.602:D/Lifecycle(644):IntheonResume()event
5、按“返回键”,程序退出:
- 03-2301:58:28.307:D/Lifecycle(644):IntheonPause()event
- 03-2301:58:28.762:D/Lifecycle(644):IntheonStop()event
- 03-2301:58:28.837:D/Lifecycle(644):IntheonDestroy()event
6、重新进入程序:
- 03-2301:59:38.282:D/Lifecycle(644):IntheonCreate()event
- 03-2301:59:38.292:D/Lifecycle(644):IntheonStart()event
- 03-2301:59:38.302:D/Lifecycle(644):IntheonResume()event
7、按“拨号键”进入拨号界面,activity被转入后台运行:
- 03-2302:00:23.252:D/Lifecycle(644):IntheonPause()event
- 03-2302:00:24.522:D/Lifecycle(644):IntheonStop()event
8、注意,此时onDestroy()方法并没有被触发,说明这个activity还在内存中。按“返回键”,退出拨号界面,这个Activity又重新可见了。观察LogCat窗口中的输出:
- 03-2302:03:25.262:D/Lifecycle(644):IntheonRestart()event
- 03-2302:03:25.262:D/Lifecycle(644):IntheonStart()event
- 03-2302:03:25.262:D/Lifecycle(644):IntheonResume()event
onRestart()方法被触发了,接下来是onStart()和onResume()。
可以从这个简单的例子中看到,当点击“返回键”的时候,activity被销毁了,与此同时,activity当前的状态也将消失。有一点需要特别注意,onPause()方法仅在两种情况下被调用:一个是在Activity被转入后台运行的时候,一个是用户按“返回键”将activity销毁的时候。
当一个anctivity被启动之后,onStart()和onResume()方法总是要被调用的,无论这个activity是从后台重新获取的,还是首次被创建的。当一个anctivity第一次被创建的时候,onCreate()方法总是被调用。
从上面的例子,我们可以得出结论:
- 使用onCreate()方法去创建和初始化将要使用的组件。
- 使用onResume()方法去开启服务和执行代码。当Activity处于“前台”模式下,这些服务和代码需要被开启或执行。
- 使用onPause()方法去停止服务和阻断代码。当Activity处于“后台”模式下,这些服务和代码不需要被开启或执行。
- 使用onDestroy()方法去释放资源。
分享到:
相关推荐
半导体设备系列专题报告之一:半导体设备详解——产业转移与国家力量赋能国产化加速推进.pdf
本文详细介绍了 Android 开发的基本概念和流程,涵盖了开发环境的搭建(Android Studio、SDK、NDK、Gradle),应用的基本结构(Activity、Service、Broadcast Receiver、Content Provider),应用生命周期及其常见...
《Android底层开发技术实战详解:内核移植与驱动》是一本深入探讨Android系统底层开发的专著,旨在帮助读者理解并掌握Android系统的核心技术。本书着重讲解了Linux内核的基本原理,以及如何将Linux内核移植到Android...
在Android开发中,Activity是应用程序的基本构建块,用于呈现用户界面和交互。了解Activity的生命周期对于创建健壮、高效的应用至关重要。Activity具有三个主要状态:运行(Running)、暂停(Paused)和停止...
《Android底层开发技术实战详解——内核、移植和驱动》这本书深入探讨了Android系统的底层机制,包括内核、系统移植以及设备驱动等关键领域。在Android操作系统中,这些部分是构建高效、稳定和功能丰富的应用的基础...
资产管理三期系列详解之——数据治理篇.docx资产管理三期系列详解之——数据治理篇.docx资产管理三期系列详解之——数据治理篇.docx资产管理三期系列详解之——数据治理篇.docx资产管理三期系列详解之——数据治理篇...
总的来说,掌握Android Activity的生命周期是开发高效且用户友好的应用程序的基础。理解这些生命周期方法何时被调用以及如何使用它们,能够帮助开发者更合理地管理资源,优化性能,避免内存泄漏等问题,从而提高应用...
Android中的Activity生命周期是每个Android开发者必须深入理解和掌握的关键概念。Activity是Android应用程序的基本构建块,它代表用户界面的一个屏幕。了解其生命周期对于优化应用性能、处理资源管理以及确保正确...
### Android开发手册——API函数详解 #### TextView的API详解 **1.1 结构** `TextView`是Android中用于展示文本的重要组件。它继承自`View`类,并且是`android.widget`包中的一个核心成员。`TextView`的类结构...
了解`Activity`的生命周期以及它在不同状态之间的转换机制对于开发高质量的Android应用程序至关重要。通过合理利用`Activity`生命周期回调方法,开发者可以确保应用程序在各种情况下都能提供良好的用户体验。此外,...
Android Activity生命周期和堆栈管理的详解 Android Activity生命周期是指Activity从创建到销毁的整个过程,包括了七个回调方法:onCreate、onStart、onRestart、onResume、onPause、onStop、onDestroy。这些方法...
本书共分两篇,第一篇介绍了Android 3D游戏开发的基础知识,主要对OpenGL ES的相关内容进行了介绍。 章 名主 要 内 容 第1章 英雄还看今朝—Android简介本章介绍了市场上主流的手机平台,同时也分析了未来手机...
### Android各组件详解:Activity #### 一、Activity概述与生命周期 **Activity**是Android四大组件之一,负责处理用户交互并展示界面。每个Activity都代表一个屏幕,可以包含多个视图(View)来构建用户界面。...
《Android网络开发与应用实战详解》一书深入浅出地介绍了Android系统中如何实现网络通信,并提供了丰富的源码示例。这本书涵盖的内容广泛,包括基础的HTTP请求、数据解析、网络状态管理以及高级的WebSocket通信和...
这份"Android开发手册——API函数详解.zip_安卓API"资料深入浅出地阐述了Android API的各种函数用法,是Android应用开发者的宝贵资源。 首先,Android API分为多个层次,最基础的是Linux内核,提供了操作系统核心...
《Android典型技术模块开发详解》这本书是为初入Android开发领域的工作者量身打造的指南,旨在帮助读者深入理解和掌握Android各个关键模块的开发技术。在本文中,我们将详细探讨书中可能涉及的重要知识点,并尽可能...
### Android 生命周期整合详解 #### 一、Android 生命周期概述 Android 应用程序主要由四大组件构成:Activity(用户界面)、Service(后台服务)、BroadcastReceiver(广播接收器)以及ContentProvider(数据共享...
- **Activity生命周期**:详解Activity的各个生命周期状态及其回调函数。 - **启动模式**:解释四种不同的启动模式(standard、singleTop、singleTask、singleInstance)的区别。 - **任务栈管理**:分析如何管理和...
### Android之Activity的生命周期与Activity间的跳转及数据传递 #### Activity的概念与作用 在Android应用开发中,`Activity`是四大组件之一,主要负责管理应用程序的用户界面(UI)。一个Activity代表一个屏幕上的...