onCreate与onStart区别,onStart与onResume区别

article/2025/10/24 6:43:38

http://www.cnblogs.com/kofi1122/archive/2011/04/10/2011772.html

 

 

Activity生命周期之我见

关于Activity生命周期的文章很多,而且大部分也说得很详细,所以作为关于这方面的内容我本来不想多说,但是大家可能跟我之前一样,在看这方面的内容的时候都能很容易地看懂,但是过几天又忘了,或者在用的程序中跳转较多的情况下容易混淆。

这是因为没有真正的理解,或者是没有很好的方法来记忆,所以在这里我就说一下我对Activity生命周期的一些记忆的方式,希望对大家能够有所帮助。

Activity生命周期的基本内容我就不多说了,网上一搜一大把,官方文档也说得很详细。总之,我们知道Activity从创建到销毁有多种状态,从一种状态到另一种状态时会激发相应的回调方法,这些回调方法包括:

onCreate 、onStart 、onResume 、onPause 、onStop 、onDestroy 、onRestart

下面这张图就是我的记忆的方式:

Activity生命周期记忆

不难看出,其实这些方法都是两两对应的,onCreate创建与onDestroy销毁;onStart可见与onStop不可见;onResume可编辑(即焦点)与onPause;这6个方法是相对应的,那么就只剩下一个onRestart方法了,这个方法在什么时候调用呢?答案就是:在Activity被onStop后,但是没有被onDestroy,在再次启动此Activity时就调用onRestart(而不再调用onCreate)方法;如果被onDestroy了,则是调用onCreate方法。

这样大家就应该能够很容易的记住这些方法了。下面再通过一个比喻来看两个Activity的切换过程。

我们把Activity比作一本书,我们要看书,首先从书架上取出书(onCreate),然后放到桌上(onStart),接着打开书(onResume),这样我们就可以看书并可以在书本上写字了。

如果这时候我们要启动另一个Activity,也就是要看另一本书,首先我们放下手中的笔或者说合上书(onPause),然后从书架上拿下另一本书(书2:onCreate),然后把书本2放到桌上并打开(书2:onStart、onResume)。

如果书本1被书本2完全盖住了,即不可见了,就调用书本1的onStop;而如果书本2较小,没有完全盖住书本1,则不会调用。

我们还可以把书本1放回书架上,即onDestroy。

另外,还有一点要注意,Activity在处于onPause、onStop、onDestroy状态下,系统都可以销毁该Activity所在进程,所以我们在处理一些要保存的数据时,必须在onPause方法中进行,因为onStop和onDestroy方法不一定会被调用。

OK,就说这么多……

 

 


http://chatgpt.dhexx.cn/article/6q0nMY5i.shtml

相关文章

Flutter BaseWidget 实现onResume、onPause()

熟读唐诗三百首,不会作诗也会吟。——孙洙 最近用Flutter开发的项目算是完成了开发到上线第一阶段了。任何一个项目开始了,若想追求的是更好,那么就需要下功夫对项目用户体验和代码效率深入的研究了。作为用户和产品经理、老板、UI、不懂技术…

Activity生命周期中onStart()和onResume()的区别

Activity生命周期中onStart()和onResume()的区别 在讲onStart()和onResume()的区别之前,必须清楚Activity的四种状态: 1.Running状态:一个新的Activity的启动入栈后,它在屏幕最前端,处于栈的最顶端,此时它…

android Activity的onPause()与onResume()

官方文档地址:http://www.android-doc.com/training/basics/activity-lifecycle/pausing.html#Resume Pause和Resume一个Activity 在一般的app使用中,前台的activity一般是会被视觉组件所遮住的,这就会导致activity的pause。举个例子&#x…

android中onResume、onPause等方法

程序正常启动:onCreate()->onStart()->onResume(); 正常退出:onPause()->onStop()->onDestory() 程序按back 退出: onPause()->onStop()->onDestory(),再进入:onCreate()->onStart()->onResume(); 程序按…

OnStart()方法和OnResume()方法的区别

文章目录 一、Activity的生命周期简述在讲onStart()和onResume()的区别之前,必须清楚Activity的四种状态: 二、OnStart()和OnResume()方法的区别区别: 总结 一、Activity的生命周期简述 在讲onStart()和onResume()的区别之前,必须…

简单介绍几种Java后台开发常用框架组合

01 前言 Java框架一直以来都是面试必备的知识点,而掌握Java框架,不管在成熟的大公司,快速发展的公司,还是创业阶段的公司,都能对当前正在开发中的系统有整体的认知,从而更好的熟悉和学习技术,这…

用IDEA进行Java后台开发(一)

想尝试着进行java后台开发,发现能找到的完整工程教程很多都是用eclipse开发的,于是照着搭了一套开发环境,也简单的写了一个测试代码,由于好几年没有使用eclipse了,快捷键实在用的费劲,遂找到了IDEA这个开发…

Java后台学习路线

2021.01.31.更新 2018.11.10更新,请看文章末尾惊喜 或者点击 https://blog.csdn.net/qq_40374604/article/details/83932163 本文摘自---https://blog.csdn.net/u014624241/article/details/52946378---感谢作者的分享 ①一段摘自知乎的文档 Java就业方向目前主…

Java后台开发一:环境搭建

很久之前就想做Java后台开发了,苦于一直没有找到合适的后台开发教程,某日发现一篇很不错的Java后台开发配置文章,记录如下: jdkeclipsesvnmavenmysqltomcat7.0sublime安装包和jar插件 配置管理工具-SVN http://download.csdn.net/…

Java后台开发知识一览

Java后台开发知识一览 1、后端 WEB服务器:Weblogic、Tomcat、WebSphere、JBoss、Jetty 核心框架:Spring Framework 分布式服务框架 Dubbo(感谢浅浅浅丿忧伤指正) 安全框架:Apache Shiro 视图框架:Spr…

Java后台开发常见官方网站汇总

Java后台开发常见官方网站汇总 写在前面开发工具篇JDKJavaSE开发文档Oracle数据库(收费)MySQL数据库(免费)RedisMongoDBJDBCDruid连接池ElasticsearchKibana——Elasticsearch的客户端RabbitMQMavenGitSpring Framework&#xff0…

【Java后台开发规范】--- 日志的输出

文章目录 前言其他类型的规范 日志输出过多日志重复打印批量打印日志中带方法讲故事日志跟踪其他基本要求 前言 做Java开发的,大多数可能都有看过阿里的Java后台开发手册,里面有关于Java后台开发规范的一些内容,基本覆盖了一些通用、普适的规…

用IDEA进行Java后台开发(二)

这篇博客接上一篇,用IDEA进行Java后台开发(一) 上一篇我们已经将工程创建完成了,下面我们将创建一个Servlet,然后本地启动tomcat后调用接口,返回helloWorld,过程如下: 1.在src目录…

Java后台开发入门

转载自: 梦回河口:http://blog.csdn.net/zxc514257857/article/details/71152003 1,什么是Web应用程序 Web应用程序是可以通过Web进行访问的应用程序,最大的好处是访问非常容易。比如淘宝、新浪、网易等门户网站   软件开发领域的三大方向…

Java后台开发:环境搭建

jdkeclipsesvnmavenmysqltomcat7.0sublime安装包和jar插件 配置管理工具-SVN http://download.csdn.net/detail/u013142781/9355417 tomcatPluginV331 http://download.csdn.net/detail/u013142781/9355409 Sublime_Text_2.0.2 http://download.csdn.net/detail/u013142781/…

【Java后台】从零开始的Java后台开发(三)

编写基础的Servlet应用程序 1 Servlet 使用Servlet需要在pom.xml中引入以下依赖&#xff1a; <!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api --><dependency><groupId>javax.servlet</groupId><artifactId>javax.…

【Java后台】从零开始的Java后台开发(一)

1. 工具 tomcat 9.0.65ideal 1. Ideal新建项目 File->New->Project 主要修改如下所示几个地方&#xff0c;之后点击create按钮 创建成功后一开始的目录如下所示&#xff0c; 但先不要动项目&#xff0c;它还在后台下载一些东西&#xff0c;下载完成后&#xff0…

数据迁移,数据库迁移工具,数据库实时同步方案

SyncNavigator是一款功能强大的数据库同步软件&#xff0c;适用于SQL SERVER, MySQL&#xff0c;具有自动/定时同步数据、无人值守、故障自动恢复、同构/异构数据库同步、断点续传和增量同步等功能&#xff0c;支持Windows xp以上所有操作系统&#xff0c;适用于大容量数据库快…

数据迁移常用方法

SQL SERVER几种数据迁移/导出导入的实践 SQLServer提供了多种数据导出导入的工具和方法&#xff0c;在此&#xff0c;分享我实践的经验&#xff08;只涉及数据库与Excel、数据库与文本文件、数据库与数据库之间的导出导入&#xff09;。 &#xff08;一&#xff09;数据库与E…

电脑数据迁移高招,怎么把旧电脑的数据迁移到新电脑

小编的朋友买了台新的笔记本电脑&#xff0c;方便出差工作&#xff0c;需要将公司电脑上的资料也导一份到新电脑里&#xff0c;怎么把旧电脑的数据迁移到新电脑。朋友一点也不想花时间重新下载安装软件&#xff0c;尤其是那些工作需要的应用。下面是她的一些要求&#xff1a; …