其中,后两项工作通过使用一个单状类能够更好地完成。当在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);
}
}