Application类简介

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

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

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

示例代码


  1. package com.test.androidtest;
  2.  
  3. import android.app.Application;
  4. import android.content.res.Configuration;
  5.  
  6. public class CMyApplication extends Application{
  7. private static CMyApplication singleton;
  8. public static CMyApplication getInstance()
  9. {
  10. return singleton;
  11. }
  12. /**
  13. * 在创建应用程序时调用
  14. */
  15. @Override
  16. public final void onCreate(){
  17. super.onCreate();
  18. singleton = this;
  19. }
  20. /**
  21. * 当系统处于资源匮乏的状态时,具有良好行为的应用程序可以释放额外的内存。
  22. * 这个方法一般只会在后台进程已经终止,但是前台应用程序仍然缺少内存时调用。
  23. * 可以重写这个处理程序来清空缓存或者释放不必要的资源。
  24. */
  25. @Override
  26. public final void onLowMemory(){
  27. super.onLowMemory();
  28. }
  29. /**
  30. * 作为 onLowMemory 的一个特定于应用程序的替代选择,在Android4.0(API Level 13)中引入。
  31. * 当运行时决定当前应用程序应该尝试减少其内存开销时(通常在它进入后台时)调用。它包含一个level参数,
  32. * 用于提供请求的上下文。
  33. */
  34. @Override
  35. public final void onTrimMemory(int level){
  36. super.onTrimMemory(level);
  37. }
  38. /**
  39. * 与Activity不同,在配置改变时,应用程序对象不会被终止和重启。
  40. * 如果应用程序使用的值依赖于特定的配置,则重写这个方法来重新加载这些值,
  41. * 或者在应用程序级别处理配置改变。
  42. */
  43. @Override
  44. public final void onConfigurationChanged(Configuration newConfig){
  45. super.onConfigurationChanged(newConfig);
  46. }
  47. }


标签: Android

Powered by emlog  蜀ICP备18021003号-1   sitemap

川公网安备 51019002001593号