全局共享變量(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中.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章