全栈工程师开发手册 (作者:栾鹏)
安卓教程全解

安卓测试Application生命周期:

application类为应用程序的创建和终止、低可用内存和配置改变提供了事件处理程序(如前面部分所述)。
通过重写以下这些方法,可以为上述几种情况实现自己的应用程序行为:

• onCreate 在创建应用程序时调用。 可以重写这个方法来实例化应用程序单态,以及创建和实例化任何应用程序状态变量或共享资源。
• onLowMemory当系统处于资源匮乏的状态时,具有良好行为的应用程序可以释放额外的内存。这个方法一般只会在后台进程已经终止,但是前台应用程序仍然缺少内存时调用。可以重写这个处理程序来清空缓存或者释放不必要的资源。
• onTrimMemory 作为onlρwMemory的一个特定于应用程序的替代选择,在Android 4(API level 13)中引入。 当运行时决定当前应用程序应该尝试减少其内存开销时(通常在它进入后台时)调用。 它包含一个level参数,用于提供请求的上下文。
• onConfigurationChanged 与Activity不同,在配置改变时,应用程序对象不会被终止和重 启。 如果应用程序使用的值依赖于特定的配置,则重写这个方法来重新加载这些值,或者 在应用程序级别处理配置改变。

这里进行以下操作演示窗口的生命周期:

1、启动app应用

2、旋转手机屏幕

3、点击手机home键,切换到手机主界面。

通过以上几步,了解application的onCreate、onLowMemory、onTrimMemory、onConfigurationChanged各阶段的执行触发点。

首先要应用自己的Application类,需要在manifest文件中进行注册声明

<applicationandroid:allowBackup="true"android:name="com.lp.app.Application1"android:icon="@drawable/icon"android:label="@string/app_name"android:theme="@android:style/Theme.Light.NoTitleBar.Fullscreen"  >...
</application>

自定义Application类代码

//扩展和使用Application类。
public class Application1 extends Application{  private static Application1 singleton;//返回应用程序实例public static Application1 getInstance(){return singleton;}//应用创建时调用,作为应用程序的初始化函数,创建新的状态变量和全局资源@Overridepublic final void onCreate(){super.onCreate();singleton=this;Log.v("生命周期", "应用创建");}//系统资源匮乏时调用,在后台已终止,前台仍然缺少内存时调用@Overridepublic final void onLowMemory(){super.onLowMemory();Log.v("生命周期", "系统资源匮乏,后台已终止,前台仍然缺少内存");}//系统资源匮乏时调用,应用程序进入后台时调用@Overridepublic final void onTrimMemory(int level){super.onTrimMemory(level);Log.v("生命周期", "系统资源匮乏,应用程序进入后台");}//配置改变,与activity不同,应用程序不会重启@Overridepublic final void onConfigurationChanged(Configuration newConfig){super.onConfigurationChanged(newConfig);Log.v("生命周期", "配置改变");}}

运行打印输出如下:

1、启动app,会触发onCreate函数

2、屏幕旋转为横屏,触发onConfigurationChanged函数

3、屏幕旋转为竖屏,触发onConfigurationChanged函数

4、点击手机home进入手机主界面,触发onTrimMemory函数

安卓application生命周期的onCreate、onLowMemory、onTrimMemory、onConfigurationChanged相关推荐

  1. 安卓Activity生命周期相关

    安卓Activity生命周期相关 activity作为安卓四大组件之一,是我们在开发中使用的最频繁的组件之一. 在这里就个人所了解的一些东西,和大家分享一下下.有错误之处,多多指正. 典型生命周期 首 ...

  2. Application生命周期

    一.Application的用途 1.Application是什么? Application和Activity,Service一样,是Android框架的一个系统组件,当Android程序启动时系统会 ...

  3. 【详细】Application生命周期简介

    一.什么是Application? Android系统会为每个程序运行时创建一个Application类的对象且仅创建一个 (例如:打开微信安卓系统会为微信创建一个Application对象,再打开微 ...

  4. Android Activity 以及 Application 生命周期

    在日常开发中(对又是日常开发).你会发现很多逻辑如果只有onCreate和onDestory完全不够用.所以稍微系统的了解一下Activity生命周期的相关知识,也很有必要. 本篇简单学习Androi ...

  5. Android Application的使用及其生命周期

    摘要: 1. Application的使用 2. Application的生命周期 ---------------------------------------------------- 工程代码: ...

  6. 安卓活动(Activity)和碎片(Fragment)的生命周期

    引言 对于安卓中生命周期的过程以及相应的事件的了解是非常重要的. 活动(Activity)的生命周期 Activity 类中定义了七个事件回调方法,与Activity生命周期的每一个环节对应. 1. ...

  7. 安卓学习笔记06:Activity生命周期与启动模式

    文章目录 零.学习目标 一.Activity生命周期 1.了解Activity生命周期 2.Activity生命周期简化图 (1)Activity存在与否 (2)Activity可见与否 (3)Act ...

  8. 安卓基础知识之Activity篇(一):Activity生命周期

    安卓基础知识系列旨在简明扼要地提供面试或工作中常用的基础知识,让对安卓还不太熟悉的小伙伴更快地入门.同时自己在工作中,也没法完全记住所有的基础细节,写这样的系列文章,可以让自己形成一个更完备的知识体系 ...

  9. 【词汇详解】“生命周期”之为什么线程(或者安卓的activity等)要有生命周期

    突然想到这个问题,,为什么线程或者安卓的activity等等,都要有个生命周期? 原因:在创建和销毁的中间有不同的状态,不同状态下可以干不同的事(解锁新功能). 线程,就绪状态>阻塞状态> ...

最新文章

  1. 提示-bash: telnet: command not found的解决方法
  2. linux echo命令的-n、-e两个参数
  3. vertx.FileResolver文件解析
  4. RabbitMQ远程不能访问问题的解决
  5. Chapter7-3_BERT and its family - ELMo, BERT, GPT, XLNet, MASS, BART, UniLM, ELECTRA, and more
  6. 爬虫模拟登陆手机验证码_爬虫入门到精通-headers的详细讲解(模拟登录知乎)...
  7. Java高级开发工程师面试考纲
  8. 苹果宣布对2019款iPad降价:最高降幅达500元
  9. 【转】Zookeeper入门
  10. 安全模式:天猫 App 启动保护实践
  11. InstallShield 2011新功能试用(7)- 新增加的InstallShield Prerequisites
  12. react-hooks学习笔记
  13. NFC reader ( ISO 15693 ) NFC相关技术详解(附源代码)
  14. 智能家居设计原理c语言,基于51单片机智能家居系统设计
  15. 输电线缺陷检测 计算机工程与设计,小波去噪和混沌理论应用于输电线缺陷检测-计算机工程与应用.pdf...
  16. YOCTO开机画面修改
  17. 在没有中介平台比如Paypal/支付宝前提下,如何说服客户先付款?--猜疑链带来的思考
  18. 关于PC端清除企业微信占用C盘空间的方法
  19. 09_Filter过滤器(访问所有资源前,首先执行自定义过滤器类的doFilter方法)_Listener监听器(监听域对象的改变)
  20. 前端框架 ng 环境配置

热门文章

  1. 语音识别的应用都有哪些
  2. 语音识别软件_语音识别软件是什么_离线语音识别软件_企业服务汇
  3. mysql数据库创建表时通过设置什么属性可以设置字段编号自动增加_Mysql数据库创建表样例和解释...
  4. mac电脑装java环境变量_Mac系统下安装jdk并配置环境变量的方法
  5. vscode设置templates_Vscode中快速创建自定义代码模板的方法
  6. matlab矩阵作分钟平均,提高matlab运行速度和节省空间的心得合集(ZT)
  7. Helm 3 完整教程(十六):Helm 函数讲解(10)版本语义化函数、URL函数、UUID函数
  8. element-ui本地使用
  9. Apsara Clouder专项技能认证:实现调用API接口(阿里云疫情白给课程系列)
  10. NYOJ457 - 大小写互换