《第一行代码》学习笔记9-活动Activity(7)
1.发现Android中的活动是可以层叠的,每启动一个新的活动,就会覆盖在原活动之上,
然后点击Back键会销毁最上面的活动,下面的一个活动就会重新显示出来。
2.Android是使用任务来管理活动的。一个任务就是一组存放在栈里的活动的集合,该栈
被称为返回栈(Back Stack)。栈是一种后进先出的的数据结构。
3.默认情况下,每启动一个新活动,会在返回栈中入栈,处于栈顶->每按下Back键或
调用finish()方法去销毁一个活动时,处于栈顶的活动会出栈->前一个入栈的活动就会
重新处于栈顶的位置。系统总是会显示处于栈顶的活动给用户。
4.活动状态:每个活动在其生命周期中最多有4种状态。
(1)运行状态:活动位于返回栈的栈顶
(2)暂停状态:活动不再处于栈顶,仍然可见。因为并不是每个活动都是占满整个屏幕
的,比如对话框形式的活动只会占用屏幕中间的部分区域。处于暂停状态的活动完全存活。
##只有在内存极低的情况下,系统才会考虑回收这种活动。
(3)停止状态:活动不再处于栈顶,且完全不可见。系统仍然会为这种活动保存相应的
状态和成员变量。并不完全可靠,其他地方需要内存时,处于停止状态的活动有可能会被
系统回收。
(4)销毁状态:从返回栈中移除就变成销毁状态。系统最倾向于回收这种状态的活动,
从而保证手机的内存充足。
5.活动的生存期:Activity类中定义了七个回调方法,覆盖了活动生命周期的每一个环节。
(1)onCreate():每个活动都重写这个方法,会在活动第一次被创建时被调用。在该方法
中完成活动的初始化操作,如加载布局,绑定事件等。
(2)onStart():在活动由不可见变为可见时调用。
(3)onResume():在活动准备好和用户进行交互的时候调用,此时活动处于运行状态。
(4)onPause():在系统准备去启动或者恢复另一个活动时调用。通常在这个方法中将一些
消耗CPU的资源释放掉,以及保存一些关键数据。但这个方法执行速度一定要快,不然会影
响到新的栈顶活动的使用。
(5)onStop():在活动完全不可见的时候调用。它和onPause()的主要区别在于,如果启动
的新活动是一个对话框式,则onPause()会执行,而onStop()并不会执行。
(6)onDestroy():在活动被销毁之前调用,之后活动状态将变为销毁状态。
(7)onRestart():在活动由停止状态变为运行状态之前调用,即活动重新启动了。
《第一行代码》学习笔记9-活动Activity(7)的更多相关文章
- 第一行代码阅读笔记---AndroidMainfest.xml分析
按照这本书的指引,我随作者一样创建了一个安卓应用,开始了安卓开发的启程. 找到AndroidMainfest.xml这个文件,打开后看到了我创建的Activity在这个文件里被成功注册,文件内容如下: ...
- 《Android第一行代码》笔记
学习Android开发差点儿相同有两年时间了.期间也做了大大小小的一些项目.近来抽出闲暇想把Android基础强化一下,之前在网上看到了郭霖郭大神的几篇博客.从中受益不少.于是花了近一周时间看完了郭神 ...
- 晒订单赢图灵图书,《第一行代码——Android》福利活动劲爆来袭!
版权声明:本文出自郭霖的博客,转载必须注明出处. https://blog.csdn.net/sinyu890807/article/details/28863515 (已结束) 我的著作<第一 ...
- (Android第一行代码实验一)活动的最佳实践
活动的最佳实践 1.知晓当前是在哪一个活动 这个技巧将教会你,如何根据程序当前的界面就能判断出这是哪一个活动. 首先需要新建一个 BaseActivity 继承自 Activi ...
- 第一行代码阅读笔记----显示隐式Intent的基本用法
1.显示Intent意图明显,通过Intent启动另外一个活动,这是安卓中各组件进行交互的一种重要方式.一般用于启动活动,启动服务,发送广播等场景. 实现方法,这里我只说思路,实践还是要自己实操才能明 ...
- 第一行代码阅读笔记---详解分析第一个Android程序
以下是我根据作者的思路,创建的第一个Android应用程序,由于工具强大,代码都自动生成了,如下: package com.example.first_app; import android.os.B ...
- python学习笔记1--python简介和第一行代码编写
一.什么是python? python是一种面向对象,解释型语言,它语法简介,容易学习.本节博客就来说说本人学习python的心得体会. 二.python环境安装 目前python版本有python2 ...
- 通过《第一行代码》学习 Android 开发
第一行代码 Android --第 2 版-- 郭霖 著 第 1 章:开始启程--你的第一行 Android 代码 •1.2 手把手带你搭建开发环境 Android Studio 的安装及配置 A ...
- 20172327 2018-2019-1 《第一行代码Android》第二章学习总结
学号 2017-2018-2 <第一行代码Android>第二章学习总结 教材学习内容总结 - 活动是什么: 活动(Activity)是最容易吸引用户的地方,它是一种可以包含用户界面的组件 ...
- 20172327 2018-2019-1 《第一行代码Android》第一章学习总结
学号 2018-2019-1 <第一行代码Android>第一章学习总结 教材学习内容总结 - Android系统架构: 1.Linux内核层 Android系统是基于Linux内核的,这 ...
随机推荐
- 微信企业号 出现redirect_uri unauthorized 50001 解决办法
在企业号内获得用户信息时,需要对域名授权,如果不授权会提示: redirect_uri unauthorized 50001 错误. 通常,我们会在 输入我们的授权域名. 今天在企业号内又新建了一个 ...
- java泛型中? super T和? extends T的区别
<? super T>表示包括T在内的任何T的父类,<? extends T>表示包括T在内的任何T的子类;请记住PECS原则:生产者(Producer)使用extends,消 ...
- 在iOS虚拟机上使CLPlacemark获取中文信息
-(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations{ CLLocat ...
- CSS学习笔记总结和技巧
跟叶老师说项目,他叫我写一个静态首页,看起来挺简单的,但是下手才发现在真的不会怎么下手啊,什么模型啊模块啊都不懂,写毛线啊!! 如图:页面下拉还有侧栏,中间内容等. 可是答应跟老师做了,不能怂啊,于是 ...
- 向asp.net项目中添加控件AspNetPager
1.打开项目,把.dll文件放入项目中: 2.在工具栏中添加一个自定义选项卡
- NAMESPACE
限定作用域,比类高,比文件低. cpp 和 h 里面都要用到.
- DOMElement之Offset
有明确目的的学习比较有效,我学习HTML offset相关概念是出自一个需求,那就是计算一个绝对定位的HTML元素相对于当前窗口的偏移距离,主要是Y方向的偏移,X方向同理. 要实现这个目的,首先要弄清 ...
- linux内核学习之三:linux中的"32位"与"64位"
在通用PC领域,不论是windows还是linux界,我们都会经常听到"32位"与"64位"的说法,类似的还有"x86"与"x86 ...
- JS中的phototype是JS中比较难理解的一个部分
本文基于下面几个知识点: 1 原型法设计模式 在.Net中可以使用clone()来实现原型法 原型法的主要思想是,现在有1个类A,我想要创建一个类B,这个类是以A为原型的,并且能进行扩展.我们称B的原 ...
- bzero()等的区别
bzero 原型: extern void bzero(void *s, int n); 用法: #include <string.h> 功能:置字节字符串s的前n个字节为零. 说 ...