• [原]Android开发技巧--Application


    1. Application用途

    创建Application时机 : Application在启动的时候会调用Application无参的构造方法创建实例; 

    Application构造方法 : Application的无参的构造方法必须是public的, 否则运行的时候会出现错误.

    Application单例 : 在一个应用中, Application是单例的;

    Application用途 : 所有的组件共享一个Application, 可以使用Application共享, 传递, 缓存数据;

    Application用法

    a. 组件间数据传递 : 组件之间传递数据的数据量比较大的时候, 尽量不要使用Intent附加域来传递, 可以将数据放在Application中, 以Application作为中转站;

    b. 下载数据 : 从网络上下载的数据, 也可以暂时缓存到Application中, 如果下载的数据过多, 可以缓存到SD卡中;

    c. 注意内存泄露 : Application是静态的, 存放数据的时候注意声明周期, 不要造成内存泄露;

    2. 自定义Application技巧


    在应用中经常用到自定义的Application, 自定义一个MyApplication, 将Application设置成单例, 并且在AndroidManifest.xml中注册这个MyApplication;


    (1)设置MyApplication单例

    a. 定义私有 静态 的MyApplication;

    b. 设置一个公有的静态方法, 将this 赋值给自定义的MyApplication对象;

    c. 设置一个获取MyApplication对象的方法, 该方法公共 静态;

    public class MyApplication extends Application {  /*   * 单例模式 : 私有 静态 本类的对象   */  private static MyApplication mApplication;    /*   * 单例模式 : 构造方法 , 注意 : Application的构造方法必须是public的   */  public ReceiverApplication(){   mApplication = this;  }  /*   * 单例模式 : 公共静态获取方法   */  public static MyApplication getInstance() {   return mApplication;  } }

    这样调用getInstance()方法, 就可以在任何类中调用Application了, 并能取到该类中的数据;


    (2)在AndroidManifest.xml中注册自定义的Application


    <manifest xmlns:android="http://schemas.android.com/apk/res/android" >      <application         android:name=".MyApplication" >              </application>  </manifest>


    (3)获取Application方法

    调用系统方法 : 在Activity中可以调用getApplicationContext()方法获取Application;

    通过自定义的方法 : 如我们上面自定义的Application那样, 可以调用自定义的getInstance()方法获取Application实例对象;


  • 相关阅读:
    Java设计模式14:常用设计模式之组合模式(结构型模式)
    Android 高级UI设计笔记07:RecyclerView 的详解
    Android进阶笔记07:Android之MVC 理解
    TCP/IP协议原理与应用笔记18:构成子网和超网
    TCP/IP协议原理与应用笔记17:IP编址(重点)
    Java设计模式13:常用设计模式之桥接模式(结构型模式)
    Java设计模式12:常用设计模式之外观模式(结构型模式)
    Java设计模式11:常用设计模式之代理模式(结构型模式)
    《nginx 五》nginx实现动静分离
    《nginx 四》双机主从热备
  • 原文地址:https://www.cnblogs.com/java20131201/p/3472372.html
Copyright © 2020-2023  润新知