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