Appllication的功能设计

每一个App都应该有一个扩展的Application。这个类中主要写一些整个app广泛用到的方法或app相关配置操作

application的生命周期是从app启动到退出。进程结束。所以在application中变量都定义为static, 也可以定义为非static。只是调用的时候稍微麻烦点

  1. public classPhoebeApp extends android.app.Application
  2. private static Context context;
  3. private static Handler handler;

App的上下文引用,主要用于调用系统api

比如说 context.getSystemService(String name) 我们在app的方法中调用的时候可以

PhoebeApp.getContext().getSystemService(Context.NOTIFICATION_SREVICE)。 不需要每次使用的时候都传入参数Context,在类设计的时候可以更加自由。

另外App中会频繁用到handler与线程的交互。有时候我们需要用Handler#postDelayed(Runnable r , intdelayMills) 这个时候我们无需重新new handler(); 只需要调用全局的PhoebeApp#getHander() 即可

更高级的用法先不讲。后续再

至此一个基本的Application扩展类已经定义完成

  1. package phoebe.frame;
  2. import android.app.Application;
  3. import android.content.Context;
  4. import android.os.Handler;
  5. /**
  6. * 这个类中主要做一些全局的配置, 或者整个app广泛用到的方法逻辑<br>
  7. *
  8. * 生命周期从
  9. *
  10. * @author coffee<br>
  11. * 2015-12-15下午3:28:30
  12. */
  13. public class PhoebeApp extends Application {
  14. /**
  15. * app的上下文的引用,主要用于调用系统api的时候传参
  16. */
  17. private static Context context;
  18. /**
  19. * 全局Handler 一般一个app只需要定义一个Handler就搞定了
  20. */
  21. private static Handler handler;
  22. @Override
  23. public void onCreate() {
  24. super.onCreate();
  25. }
  26. public static Context getContext() {
  27. return context;
  28. }
  29. public static Handler getHandler() {
  30. return handler;
  31. }
  32. }
  33.