只想记录点什么,给自己留下一些足迹。
学过安卓的人,对于Activity来说并不陌生,它是呈现在我们手机屏幕上面供用户进行操作的界面,它有七个生命周期。当我们创建一个Activity时,它会调用onCreate() 方法,此时的Activity是不可见,不可与用户交互的,接着继续调用onStart() 方法,这时的Activity可见,但还是不可交互,继续调用onResume 方法,Activity可见, 可与用户交互,经过这三个方法的调用,最终我们就可以在这个Activity上面进行操作了,一个Activity的创建也算完成。
当我们按下返回键的时候,此时的Activity会调用onPause(部分可见,不可交互),onStop(不可见,不可交互),onDestroy(程序销毁,释放资源),此时的Activity退出栈,程序销毁。要是重新启动程序,就会重复上面的方法来创建一个Activity。当我们不是按下返回键的时候,而是直接按下home键回到桌面,那么此时的Activity会调onPause,onStop,而不会调用onDestroy来销毁程序。接着打开刚才运行的程序,会发现Activity会调用onRestart(重新启动),onStart,onResume重新呈现在我们的面前。
onCreate() 方法:一般我们在这个方法里面对Activity需要的一些ui控件的进行设置,比如绑定列表的数据,创建一个View等。如果这个方法里面的参数不为空,说明接收到了Activity的状态(一般保存的是一些UI控件的状态),此时这个方法传递进来的参数存放了Activity当前的状态。我们可以进行相应的处理。
onStart()方法:使得Activity对用户可见,当我们想要Activity对用户不可见时,调用onStop()方法。
onResume()方法:使得activity可以与用户交互。此时的Activity处于栈顶。
onPause()方法:使得Activity处于部分可见但是不能操作的状态,当我们正在听歌的时候,突然一个电话进来,那么此时的听音乐的Activity就必须调用此方法,在里面进行暂停音乐播放的操作,让用户更好的去接电话。当然这个方法里面也可以保存一些还没有来得及提交的数据。
onDestroy()方法:销毁Activity,Activity调用的最后一个方法。销毁Activity有两种方法,一个是这个Activity自己调用了finish()方法,或者是系统因为内存不足,临时的关闭了Activity,我们可以用isfinish方法来做一个判断。
这些对Activity的操作构成了Activity是生命周期,明白了这些方法的作用,我们在开发的时候就可以在相应的方法里面进行相应的操作了。

一些疑问:
当我们通过当前的Activity启动另一个Activity的时候,为什么要先把当前的Activity暂停?
答:暂停当前的Activity是为了给用户一个更好的体验,举个例子:我们正在听歌的时候,突然一个电话进来,那么此时的听音乐的Activity就必须调用此方法,在里面进行暂停音乐播放的操作,让用户更好的去接电话。要是不暂停当前的Activity那么用户接电话的时候音乐还在放在是很糟糕的。
当打开新的Activity的时候为什么不直接执行当前的Activity的onPause,onStop方法呢?
答:这是一个保护机制,当前的Activity你执行了onStop方法之后再来执行你要启动的Activity,要是你启动的Activity由于一些原因闪退,而你的当前的Activity又关闭了,那么用户看见的是黑屏,体验不好。 

转载于:https://www.cnblogs.com/linewman/p/9918402.html

Android学习记录(一) 重拾Activity相关推荐

  1. 重拾Activity(三)Activity知识

    这篇文章是从安卓开发者文档找到的Activity资料进行整理的(篇幅较长,用于个人回顾) 目录 这篇文章是从安卓开发者文档找到的Activity资料进行整理的(篇幅较长,用于个人回顾) Activit ...

  2. Android 学习记录(持续更新)

    Android 学习记录(持续更新) 1.AndroidManifest.xml 详解: http://www.jb51.net/article/73731.htm (AndroidManifest. ...

  3. Android学习记录(一)

    文章目录 Android学习记录(1) 1.Android的相关介绍 1.1Android是什么 1.2使用工具(Android Studio) 1.3Android应用目录结构 2.Android案 ...

  4. android 学习记录-----------android 活动 意图 碎片

    将此篇博客作为记录android项目开发过程中的学习记录 转载于:https://www.cnblogs.com/yukino/p/4071002.html

  5. Android学习记录

    从今天开始呢我就要每隔一段时间就记录自己学习Android的状况.现在还处于java基础的学习中,所以并未有什么特别的问题或注意要提醒大家,那么今天就来聊聊我的Android之路吧. 其实智能机出现之 ...

  6. Android学习笔记系列四2 —— Activity的生命周期

    2019独角兽企业重金招聘Python工程师标准>>> 启动一个Activity 使用startActivity(Intent intent). intent指定了你想要启动的act ...

  7. Android学习记录--Switch开关按钮的应用

    今天学习了一下开关按钮的应用,很简单类似于单选按钮.注意:Switch是API14中才出现的.所以要注意项目的min target 版本 实现了一个开灯关灯图片切换的效果:很简单直接上代码. 1 &l ...

  8. Android学习记录——8.多媒体

    文章目录 1.将程序运行到手机上 2.使用通知 2.1 通知的基本用法 2.2 通知的进阶技巧 2.3 通知的高级功能 3.调用摄像头和相册 3.1 调用摄像头拍照 3.2 从相册中选择图片 4.播放 ...

  9. Android学习记录1--布局的类型

    今天学习了Android开发的布局类型,良好的布局设计对UI界面至关重要. Android中的布局分为六种: 线性布局(LinearLayout):按照垂直或者水平方向布局的组件. 帧布局(Frame ...

最新文章

  1. 辞职后五险一金的处理方式
  2. 73. 解决ExtJS TreePanel 的 iconCls设置问题
  3. k8s管理java项目_Kubernetes集群部署项目-部署Java项目(推送镜像
  4. 捕获和抛出异常(Ctrl+Alt+T)
  5. 一文带你用python做自动化测试
  6. 电脑刷机重装系统_一键刷机工具
  7. 什么叫侧面指纹识别_哪种指纹识别方式好?侧边指纹识别可能会成为主流
  8. 解决Android 音频Xrun问题
  9. java线程冲突问题——不安全的线程例子
  10. 20190914每日一句
  11. java中面向对象的例子_java面向对象九个经典例子程序
  12. Android各版本兼容性适配
  13. 利用DCT进行jpg压缩;对图像进行二值化【matlab代码】
  14. 英:常见符号英文读法
  15. Docker Nginx配置(docker.io/nginx)
  16. Ubuntu安装DHCP服务
  17. SAMSUNG,三星,N8000升级
  18. 标量/向量/矩阵求导方法
  19. 今天看漫画不爽,操起ruby...
  20. 第三届国际金融科技论坛开幕,神州信息专家参与蓉城“论道”

热门文章

  1. jquery-validation 使用
  2. opencv识别圆的代码(转)
  3. 一个简单的微服务项目带你上手spring cloud 全家桶
  4. php 有趣的php 封装,封装PHP常用的操作类
  5. physx选择显卡还是cpu_3D建模和渲染吃CPU还是显卡?专业显卡和游戏显卡的区别...
  6. 开源GIS(十)——openlayers中加载在线标准与自定义切片
  7. 【java学习之路】(java框架)011.SpringMVC入门
  8. java中异常的定义_java中异常的理解
  9. win10远程计算机或设备将不接收连接?
  10. idea中算子正确,算子下面有红波浪线,原因分析