Application

Application

android系统会为每个程序运行时创建一个Application类的对象且仅创建一个,所以Application是单例 (singleton)模式的一个类。且application对象的生命周期是整个程序中最长的,它的生命周期就等于这个程序的生命周期。因为它是全局的单例的,所以在不同的Activity,Service中获得的对象都是同一个对象。因此在安卓中我们可以避免使用静态变量来存储长久保存的值,而用Application。

为了更好的利用Application的这一特性,比如我们需要Application来保存一些静态值,需要自定义继承于Application的类,然后在这个类中定义一个变量来保存。如下:

通常Application全局对象是通过Context或Activity的getApplicationContext()方法获得的,
1.在activity中这样做:appContext = (AppContext)this.getApplicationContext();
2.如果有Context对象:appContext = (AppContext)mContext.getApplicationContext();
3.但是很多时候我们的代码可能在activity之外,且没有context对象的引用,但是又需要获得AppContext对象,原始的做法可能是想办法将activity或者context传递到需要调用的地方,但是这样代码耦合度太高,可读性差。我们有更优雅的做法。我们谈到Application对象是全局的,单例的,既然是单例应该有一个类方法能让我们获得这个单例对象才是,但Application本身没有,我们只能在自定义的时候想办法。如下:(这样我们就能在app工程的任何地方通过AppContext.getInstance()来获得Application全局对象。)

public class AppContext extends Application{ 
	public static final int NETTYPE_WIFI = 0x01;
 	public static final int PAGE_SIZE = 20;//默认分页大小
	
	private static AppContext instance;	
	public static AppContext getInstance() {
		return instance;
	} 
	@Override
	public void onCreate() {
		super.onCreate();
		instance = this;
	}

<application
    android:name=".AppContext"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值