項目開發的過程中,可能會大量的使用全局變量,在android開發中,大多數人更偏向於使用application來保存全局變量。那么我們就先來了解下在android中,application究竟是什么?有什么作用?
Application類是用來維護應用程序全局狀態。我們可以提供自己的實現,並在AndroidManifest.xml文件的<application>標簽中指出它的名字,這將導致在創建應用程序時去實例化我們自己的Application類。Android系統會為每個程序運行時創建一個Application類的對象且僅創建一個,所以Application可以說是單例模式的一個類。且Application對象的生命周期是整個程序中最長的,它的生命周期就等於這個程序的生命周期。因為它是全局唯一的,所以在不同的Activity,Service中獲得的對象都是同一個對象。所以,通過Application來進行一些數據傳遞、數據共享、數據緩存等操作。
首先創建繼承自Application的MyApplication類,定義變量score,並創建get和set方法。
1 package com.example.whs.myapplication; 2 3 import android.app.Application; 4 5 /** 6 * Created by whs on 17/5/1. 7 */ 8 9 public class MyApplication extends Application { 10 private int score = 100; 11 12 public int getScore() { 13 return score; 14 } 15 16 public void setScore(int score) { 17 this.score = score; 18 } 19 }
下面就是如何使用我們創建的全局變量了,在MainActivity中,首先要獲得MyApplication的對象,因為MyApplication繼承自Application,所以使用getApplication()方法即可,然后可以調用MyApplication的get或set方法進行訪問全局變量。
MyApplication application = (MyApplication)this.getApplication(); application.setScore(200); int score = application.getScore();
注意,在使用MyApplication之前需要修改AndroidManifest.xml文件的<application>中的android:name = ".MyApplication",這樣就不會訪問系統提供的application,而訪問我們自己創建的。