安卓application生命周期的onCreate、onLowMemory、onTrimMemory、onConfigurationChanged

来源:互联网 发布:ubuntu 搜狗五笔 编辑:程序博客网 时间:2024/06/07 21:10

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

安卓教程全解

安卓测试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文件中进行注册声明

<application        android: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;    }    //应用创建时调用,作为应用程序的初始化函数,创建新的状态变量和全局资源    @Override    public final void onCreate(){        super.onCreate();        singleton=this;        Log.v("生命周期", "应用创建");    }    //系统资源匮乏时调用,在后台已终止,前台仍然缺少内存时调用    @Override    public final void onLowMemory(){        super.onLowMemory();        Log.v("生命周期", "系统资源匮乏,后台已终止,前台仍然缺少内存");    }    //系统资源匮乏时调用,应用程序进入后台时调用    @Override    public final void onTrimMemory(int level){        super.onTrimMemory(level);        Log.v("生命周期", "系统资源匮乏,应用程序进入后台");    }    //配置改变,与activity不同,应用程序不会重启    @Override    public final void onConfigurationChanged(Configuration newConfig){        super.onConfigurationChanged(newConfig);        Log.v("生命周期", "配置改变");    }}

运行打印输出如下:

这里写图片描述

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

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

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

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

原创粉丝点击