全局共享变量(Android)

在安卓中一种比较好的储存全局共享变量的方法是继承Application,将全局变量写入继承的Application类中,然后在Activity或Service中通过getApplication()方法来获全局变量中.形如以下用法:

//MyApplication.java
public class MyApplication extends Application{
	public WeakReference<MyPublicData> d;
	
	public void setMyPublicData(MyPublicData _d){
		d = null;
		d = new WeakReference<MyPublicData>(_d);
	}
	
	public MyPublicData getMyPublicData(){
		return d.get();
	}
}


 

//Activity_1.java

d = new MyPublicData(this);
((MyApplication)this.getApplication()).setMyPublicData(d);


//Activity_2.java

MyPublicData d = ((MyApplication)this.getApplication()).getMyPublicData();

 


 最后在manifest中application标签上加入name项:

<application
        ...
        android:name=".MyApplication">


我的个人习惯是用一个MyPublicData来储存各种全局变量,这样比较符合语义而且比较容易修改.

例子中在Activity_1中初始化MyPublicData是因为项目设计因素,个人建议将MyPublicData的初始化放在MyApplication的OnCreate中.

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值