Android應用程序開發中,有的時候我們在應用程序的任何一個地方都需要訪問一個全局變量,也就是在任何一個Activity中都可以訪問的變量。它不會因為Activity的生命周期結束而消失。要實現應用程序級的變量,我們可以通過Application這個類來實現。 首先,我們新建一個類HelloApplication繼承Android.app.Application類,然后在我們的類中增加一些變量。如下所示:
然后在應用程序配置文件AndroidManifest.xml中進行相應的配置,如下圖所示:
完成之后,我們在應用程序的任何一個Activity中可以通過如下方法訪問我們的變量:
怎么樣? 是不是很簡單? Application對象只有在應用程序中所有Activity都destroy時才會destrory,所有我們可以在任何一個Activity中訪問它。 那么為什么我們不能使用static 變量來存放全局變量呢?如下所示:
通過這種方式,DataStoreClass類可能會像Activity一樣在某些時候被android系統強行銷毀。所以在應用程序運行期間,DataStoreClass的值可能會丟失,或得到一些您不想要的值。 FROM: helloandroid
///////////////////////////////////////////////////////////////////////////////
//使用不羅嗦了,注意紅色的地方就可以了
首先:
其次:
<application android:icon="@drawable/icon" android:label="@string/app_name" android:name=".BaseApplication" >
...
</application>
再次:在activity中
BaseApplication app=null;
app = ((BaseApplication) getApplicationContext());
app.getText();
public class HelloApplication extends Application { private int globalVariable=1; public int getGlobalVariable() { return globalVariable; } public void setGlobalVariable(int globalVariable) { this.globalVariable = globalVariable; } }
然后在應用程序配置文件AndroidManifest.xml中進行相應的配置,如下圖所示:

完成之后,我們在應用程序的任何一個Activity中可以通過如下方法訪問我們的變量:
((HelloApplication)getApplication()).setGlobalVariable(10); int valiable=((HelloApplication)getApplication()).getGlobalVariable();
怎么樣? 是不是很簡單? Application對象只有在應用程序中所有Activity都destroy時才會destrory,所有我們可以在任何一個Activity中訪問它。 那么為什么我們不能使用static 變量來存放全局變量呢?如下所示:
public class DataStoreClass { private static int globalVariable=1; public static int getGlobalVariable() { return globalVariable; } public static void setGlobalVariable(int newGlobalVariable) { globalVariable = newGlobalVariable; } }
通過這種方式,DataStoreClass類可能會像Activity一樣在某些時候被android系統強行銷毀。所以在應用程序運行期間,DataStoreClass的值可能會丟失,或得到一些您不想要的值。 FROM: helloandroid
///////////////////////////////////////////////////////////////////////////////
//使用不羅嗦了,注意紅色的地方就可以了
首先:
import android.app.Application; /** * 全局變量類,不需要用Bundle傳來傳去了 * @author admin * */ public class BaseApplication extends Application { private String text = "My world"; public String getText() { return text; } public void setText(String text) { this.text = text; } }
其次:
<application android:icon="@drawable/icon" android:label="@string/app_name" android:name=".BaseApplication" >
...
</application>
再次:在activity中
BaseApplication app=null;
app = ((BaseApplication) getApplicationContext());
app.getText();
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
