[原]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实例对象;


原文地址:https://www.cnblogs.com/java20131201/p/3472372.html