想要学好安卓开发,就必须理解安卓软件的生命周期,明白一个活动的创建、启动、停止、暂停、重启和销毁的过程,知道各个阶段会调用什么函数进行处理不同的情况,这里我就通过一个简单的例子让大家明白一个活动的生命周期。

 

工具/原料

  • Android studio
  • 一部安卓手机或者安卓模拟器

Android studio如何重写函数

  1. 1

    在Android studio中,如果需要重新某个函数,可以在菜单栏中的“code”下选择第一项“override methods”,或者按Ctrl+O打开。

  2. 2

    在弹出的列表中找到需要重写的函数,以onStart()为例,不要看到没有搜索口就头疼了,直接在当前列表输入所需的函数即可。

  3. 3

    然后就可以看到已经生成的重新函数了,每个重写函数前面都有一个@override的标志。在生成的代码中添加一句:

    Log.d(tag, "In the onStart() event");

    这样一来,一个活动的启动重写函数就完成了,其他函数都可以通过相同方式重写。

  4. 4

    在创建好的项目的DemoActivity.java中,在类中添加:

    String tag = "lifestyle";

    在自动生成的onCreate中添加代码:

    Log.d(tag,"In the onCreate() event");

  5. 5

    按上述重写函数的方式分别重写:

    onStart、onResume、onRestart、onPause、onStop、onDestroy。

    在每个重写函数中分别加上:

    Log.d(tag,"In the onStart() event");

    Log.d(tag,"In the onResume() event");

    Log.d(tag,"In the onRestart() event");

    Log.d(tag,"In the onPause() event");

    Log.d(tag,"In the onStop() event");

    Log.d(tag,"In the onDestroy() event");

    END

活动的生命周期

  1.  

    连接安卓手机进行仿真测试,shift+F10生成apk并在手机上自动安装。

  2.  

    刚启动时,活动需要经过创建、启动、继续三个阶段,对应着onCreate、onStart、onResume三个函数。onResume可以继续、重新开始、恢复三重含义。

    在logcat窗口可以查看当前活动所处的状态。

  3.  

    当有别的活动在当前活动前显示,或者自动锁屏时,当前活动会暂停,调用onPause函数,重新回到当前活动时,会调用onResume函数。

  4.  

    当退回手机主页时,当前活动会从onResume状态通过onPause再到onStop,表示当前活动不可见,被停止。

  5.  

    但重新打开时,活动又由停止状态通过onReStart,onStart再重新回到onResume状态。

  6.  

    如果按下返回键退出程序,活动就会由onResume状态经过onPause、onStop最后调用onDestroy销毁活动。

  7.  

    本经验第一张图片给大家展示了一个活动的生命周期如何切换,又通过例子说明了不同状态下活动如何处理,相信大家对活动的生命周期有了相当的了解。这样就可以把握好程序编写的要领,在合适的函数中处理合适的事情,会让你的app更加完美。

Android studio教程:[5]活动的生命周期的更多相关文章

  1. 【Android】8.0活动的生命周期(一)——理论知识、活动的启动方式

    1.0 Android是使用任务(Task)来管理活动的,活动就像栈一样堆放着在一起. 每个活动的生命周期最多可能会有四种状态: 1.1 运行状态 位于栈顶 1.2 暂停状态 不在栈顶但在界面上仍处于 ...

  2. Android基础知识05—活动的生命周期

    ------ 活动的生命周期 ------ Android是使用任务Task来管理活动的,一个任务就是一组存放在栈里的活动的集合.每当启动一个活动 ,他就会在返回栈中入栈,并处于栈顶位置.而每当我们按 ...

  3. 【Android】9.0活动的生命周期(二)——实际代码演示

    1.0  新建一个项目ActivityLifeCycleTest. 新建两个活动NormalActivity和DialogActivity,勾选“Generate Layout File”. 文件目录 ...

  4. Xamarin.Android活动的生命周期

    一.前言 用过Android手机的人一定会发现一种现象,当你把一个应用置于后台后,一段时间之后在打开就会发现应用重新打开了,但是之前的相关的数据却没有丢失.可以看出app的“生命”是掌握在系统手上的, ...

  5. Android笔记——活动的生命周期

    一.活动的重要性 掌握活动的生命周期对任何 Android 开发者来说都非常重要,当你深入理解活动的生命周期之后,就可以写出更加连贯流畅的程序,并在如何合理管理应用资源方面,你会发挥的游刃有余.你的应 ...

  6. Android学习笔记(五)——活动的生命周期

    //此系列博文是<第一行Android代码>的学习笔记,如有错漏,欢迎指正! 为了能写出流畅连贯的程序,我们需要了解一下活动的生命周期. 一.返回栈 Android 中的活动是可以层叠的. ...

  7. Android活动的生命周期

    掌握活动的生命周期对任何Android开发者来说都非常重要,当你深入理解活动的生命周期之后,就可以写出更加连贯流畅的程序. -------------------------------------- ...

  8. android 活动的生命周期

    掌握活动的生命周期非常重要,因为一个正常的android应用,会有很多的活动,如何在这些活动之间进行切换.数据的交互等,就经常会用到活动的生命周期这一块的知识.可以说,只要掌握了活动的生命周期,才能更 ...

  9. android:activity活动的生命周期

    掌握活动的生命周期对任何 Android 开发者来说都非常重要,当你深入理解活动的生命 周期之后,就可以写出更加连贯流畅的程序,并在如何合理管理应用资源方面,你会发挥的 游刃有余.你的应用程序将会拥有 ...

随机推荐

  1. simplify the life ECMAScript 5(ES5)中bind方法简介

    一直以来对和this有关的东西模糊不清,譬如call.apply等等.这次看到一个和bind有关的笔试题,故记此文以备忘. bind和call以及apply一样,都是可以改变上下文的this指向的.不 ...

  2. php 二维码生成类

    <?php /** * BarcodeQR - Code QR Barcode Image Generator (PNG) * @package BarcodeQR * @category Ba ...

  3. Nohttp网络请求数据,Post以及Get的简单实用以及设置缓存文字的的请求

    开局声明:这是基于nohttp1.0.4-include-source.jar版本写的教程 由于nohttp功能强悍,因此需要多种权限,仅仅一个联网的权限是不够的,如果只给了Internet的权限,去 ...

  4. Java学习——多态

    多态:可以理解为事物存在的多种体现形态. 人:男人,女人 动物:猫,狗 猫 x = new 猫(); 动物 x = new 猫(); 1,多态的体现 父类的引用指向了自己的子类对象. 父类的引用也可以 ...

  5. 使用react-native做一个简单的应用-05 navigator的使用

    今天生病了,难受... Navigator顾名思义就是导航器的意思. 在Android和iOS中,导航器的样式是不一样的 ,有一个比较好的网址可以提供大家学习(网址),由于样式的不统一,于是我决定自己 ...

  6. 不能修改“System Roots”钥匙串 即下载的.cer 文件添加不到钥匙串

    双击提示  :不能修改“System Roots”钥匙串要更改根证书是否会被信任,请在“钥匙串访问”中打开它,然后修改它的信任设置. 解决办法:添加到   登录或显示LOGIN的 keychain(记 ...

  7. NSData、NSString 、 NSFileManager

      1 NSData和NSMutableData的基本使用 1.1 问题 NSData类是IOS提供的用于以二进制的形式操作文件数据的类,NSData有两个常用的属性length和bytes,leng ...

  8. C#参数传递、引用类型、值类型等的理解

    本博客不属于技术贴,主要是记录一些自己对不懂得地方的理解和学习的记录,请带着批判的眼光阅读~ 值类型存储在栈上,引用类型存储在堆上.栈是由高到低存储的,遵循先进后出的原则,是内存提前分配好的区域,内存 ...

  9. virtual box 改变已经创建的虚拟系统分配的硬盘

    启动cmd,进入virtualbox安装的目录 :cd E:\Program Files\Oracle\VirtualBox 然后输入VBoxManage.exe list hdds ,可以看到 D: ...

  10. (a*b)%c 问题

    给你两个数__int64 类型的整数 a ,b,c.问你,(a*b)%c的值是多少??我们知道: (a*b)%c = ((a%c)*(b%c))%c .不过即使这样做,在c很大的情况下,(a%c)*( ...