1.Activity的概念与Activity的生命周期图:

注意事项:

onPause()和onStop()被调用的前提是: 打开了一个新的Activity!而前者是旧Activity还可见的状态;后者是旧Activity已经不可见!

2.Activity/ActionBarActivity/AppCompatActivity的区别:

在开始讲解创建Activity之前要说下这三个的一个区别: Activity就不用说啦,后面这两个都是为了低版本兼容而提出的提出来的,他们都在v7包下, ActionBarActivity已被废弃,从名字就知道,ActionBar~,而在5.0后,被Google弃用了,现在用 ToolBar...而我们现在在Android Studio创建一个Activity默认继承的会是:AppCompatActivity! 当然你也可以只写Activity,不过AppCompatActivity给我们提供了一些新的东西而已! 两个选一个,Just you like~

3.Activity的创建流程

PS:

好了,上面也说过,可以继承Activity和AppCompatActivity,只不过后者提供了一些新的东西而已! 另外,切记,Android中的四大组件,只要你定义了,无论你用没用,都要在AndroidManifest.xml对 这个组件进行声明,不然运行时程序会直接退出,报ClassNotFindException...

4.onCreate()一个参数和两个参数的区别:

相信用as的朋友在重写Act的onCreate()方法时会发现,这玩意有两个参数:

可是正常的才只有一个参数啊:

恩呢,这就是5.0给我们提供的新的方法,要用它,先要在配置文件中为我们的Activity设置一个属性:

android:persistableMode="persistAcrossReboots"

然后我们的Activity就拥有了持久化的能力了,一般我们会搭配另外两个方法来使用:

public void onSaveInstanceState(Bundle outState, PersistableBundle outPersistentState)
public void onRestoreInstanceState(Bundle savedInstanceState, PersistableBundle persistentState)

相信有些朋友对这两个方法名不陌生吧,前一个方法会在下述情形中被调用:

  1. 点击home键回到主页或长按后选择运行其他程序
  2. 按下电源键关闭屏幕
  3. 启动新的Activity
  4. 横竖屏切换时,肯定会执行,因为横竖屏切换的时候会先销毁Act,然后再重新创建 重要原则:当系统"未经你许可"时销毁了你的activity,则onSaveInstanceState会被系统调用, 这是系统的责任,因为它必须要提供一个机会让你保存你的数据(你可以保存也可以不保存)。

    而后一个方法,和onCreate同样可以从取出前者保存的数据: 一般是在onStart()和onResume()之间执行! 之所以有两个可以获取到保存数据的方法,是为了避免Act跳转而没有关闭, 然后不走onCreate()方法,而你又想取出保存数据~

    说回来: 说回这个Activity拥有了持久化的能力,增加的这个PersistableBundle参数令这些方法 拥有了系统关机后重启的数据恢复能力!!而且不影响我们其他的序列化操作,卧槽, 具体怎么实现的,暂时还不了解,可能是另外弄了个文件保存吧~!后面知道原理的话会告知下大家! 另外,API版本需要>=21,就是要5.0以上的版本才有效~

Activity初学乍练的更多相关文章

  1. Android基础新手教程——4.1.1 Activity初学乍练

    Android基础新手教程--4.1.1 Activity初学乍练 标签(空格分隔): Android基础新手教程 本节引言: 本节開始解说Android的四大组件之中的一个的Activity(活动) ...

  2. Android四大组件——Activity

    Activity作为Android四大组件之一,也是其中最重要的一个组件.作为一个与用户交互的组件,我们可以把Activity比较成为windows系统上的一个文件夹窗口,是一个与用户交互的界面.再进 ...

  3. Android 各种常见activity

    引用:Activity初学乍练 //1.拨打电话 // 给移动客服10086拨打电话 Uri uri = Uri.parse("tel:10086"); Intent intent ...

  4. EventBus实现activity跟fragment交互数据

    最近老是听到技术群里面有人提出需求,activity跟fragment交互数据,或者从一个activity跳转到另外一个activity的fragment,所以我给大家介绍一个开源项目,EventBu ...

  5. Android—Service与Activity的交互

    service-Android的四大组件之一.人称"后台服务"指其本身的运行并不依赖于用户可视的UI界面 实际开发中我们经常需要service和activity之间可以相互传递数据 ...

  6. Android:Activity+Fragment及它们之间的数据交换.

    Android:Activity+Fragment及它们之间的数据交换 关于Fragment与Fragment.Activity通信的四种方式 比较好一点的Activity+Fragment及它们之间 ...

  7. Android中Activity处理返回结果的实现方式

    大家在网上购物时都有这样一个体验,在确认订单选择收货人以及地址时,会跳转页面到我们存入网站内的所有收货信息(包含收货地址,收货人)的界面供我们选择,一旦我们点击其中某一条信息,则会自动跳转到订单提交界 ...

  8. 报错:You need to use a Theme.AppCompat theme (or descendant) with this activity.

    学习 Activity 生命周期时希望通过 Dialog 主题测试 onPause() 和 onStop() 的区别,点击按钮跳转 Activity 时报错: E/AndroidRuntime: FA ...

  9. Android 旋转屏幕--处理Activity与AsyncTask的最佳解决方案

    一.概述 运行时变更就是设备在运行时发生变化(例如屏幕旋转.键盘可用性及语言).发生这些变化,Android会重启Activity,这时就需要保存activity的状态及与activity相关的任务, ...

随机推荐

  1. hdu 5902 GCD is Funny

    Problem Description Alex has invented a new game for fun. There are n integers at a board and he per ...

  2. CodeForces 982 D Shark

    Shark 题意:一个研究员观察了一条鲨鱼n天的运动,然后这条鲨鱼他只会往前走,不会回到去过的地方,现在有一个k,,如果鲨鱼当天游过的距离 >= k, 代表的鲨鱼在这天会前往下一个地点,现在求鲨 ...

  3. 快速幂 HDU 1061 Rightmost Digit *

    Rightmost Digit Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)T ...

  4. 企查猫app数据解密

    通过最近几天的对企查猫的研究,目前已经成功将企查猫的数据加密和响应数据加密完成解密. 和之前对启信宝APP的数据解密操作基本一样,不过企查猫对请求和响应都使用aes加密了,抓包的时候可以看到,具体可以 ...

  5. 深度递归必须知道的尾调用(Lambda)

    引导语 本文从一个递归栈溢出说起,像大家介绍一下如何使用尾调用解决这个问题,以及尾调用的原理,最后还提供一个解决方案的工具类,大家可以在工作中放心用起来. 递归-发现栈溢出 现在我们有个需求,需要计算 ...

  6. adb 端口冲突

    第一种方法:可以设置另一个端口 第二种方法: http://blog.csdn.net/hwl1314/article/details/52538023 Android studio 5037端口被占 ...

  7. 【3】Decision tree(决策树)

    前言 Decision tree is one of the most popular classification tools 它用一个训练数据集学到一个映射,该映射以未知类别的新实例作为输入,输出 ...

  8. 如何在 Ubuntu 上安装 MongoDB

    MongoDB 是一个越来越流行的自由开源的 NoSQL 数据库,它将数据存储在类似 JSON 的灵活文档集中,这与 SQL 数据库中常见的表格形式形成对比. 你很可能发现在现代 Web 应用中使用 ...

  9. PythonI/O进阶学习笔记_5.python的set和dict

    前言: 我一直觉得对我来说学习知识很忌讳不系统.本篇内容与上一篇 自定义序列类是有联系的. 上一篇比较通范的了解了序列类的一些协议和特性,并且有些list的内容.这篇更加具体到set和dict这两个序 ...

  10. iptables的删除命令中的相关问题

    最近在做一个VPN中间件的配置工作,在配置iptables的时候,当用户想删除EIP(即释放当前连接),发现使用iptables的相关命令会提示错误. iptables: Bad rule (does ...