Application类简介

作者:追风剑情 发布于:2016-7-13 17:42 分类:Android

每次应用程序运行时,应用程序的Application类都保持实例化状态。与Activity不同,配置改变并不会导致应用程序重启。通过扩展Application类,可以完成以下3项工作:
  • 对Android运行时广播的应用程序级事件(如低内存)做出响应。
  • 在应用程序组件之间传递对象。
  • 管理和维护多个应用程序组件使用的资源。

其中,后两项工作通过使用一个单状类能够更好地完成。当在Manifest中注册了Application实现以后,它会在创建应用程序进程的时候得到实例化。因此,Application的实现在本质上是单状的, 并且应该作为单态进行实现,以便提供对其方法和成员变量的访问。

示例代码


package com.test.androidtest;

import android.app.Application;
import android.content.res.Configuration;

public class CMyApplication extends Application{
	
	private static CMyApplication singleton;
	
	public static CMyApplication getInstance()
	{
		return singleton;
	}
	
	/**
	 * 在创建应用程序时调用
	 */
	@Override
	public final void onCreate(){
		super.onCreate();
		singleton = this;
	}
	
	/**
	 * 当系统处于资源匮乏的状态时,具有良好行为的应用程序可以释放额外的内存。
	 * 这个方法一般只会在后台进程已经终止,但是前台应用程序仍然缺少内存时调用。
	 * 可以重写这个处理程序来清空缓存或者释放不必要的资源。
	 */
	@Override
	public final void onLowMemory(){
		super.onLowMemory();
	}
	
	/**
	 * 作为 onLowMemory 的一个特定于应用程序的替代选择,在Android4.0(API Level 13)中引入。
	 * 当运行时决定当前应用程序应该尝试减少其内存开销时(通常在它进入后台时)调用。它包含一个level参数,
	 * 用于提供请求的上下文。
	 */
	@Override
	public final void onTrimMemory(int level){
		super.onTrimMemory(level);
	}
	
	/**
	 * 与Activity不同,在配置改变时,应用程序对象不会被终止和重启。
	 * 如果应用程序使用的值依赖于特定的配置,则重写这个方法来重新加载这些值,
	 * 或者在应用程序级别处理配置改变。
	 */
	@Override
	public final void onConfigurationChanged(Configuration newConfig){
		super.onConfigurationChanged(newConfig);
	}
}


标签: Android

Powered by emlog  蜀ICP备18021003号-1   sitemap

川公网安备 51019002001593号