日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android中Application类用法

發(fā)布時間:2024/4/15 Android 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android中Application类用法 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Application類

Application和Activity,Service一樣是Android框架的一個系統(tǒng)組件,當(dāng)Android程序啟動時系統(tǒng)會創(chuàng)建一個Application對象,用來存儲系統(tǒng)的一些信息。

Android系統(tǒng)自動會為每個程序運行時創(chuàng)建一個Application類的對象且只創(chuàng)建一個,所以Application可以說是單例(singleton)模式的一個類。

通常我們是不需要指定一個Application的,系統(tǒng)會自動幫我們創(chuàng)建,如果需要創(chuàng)建自己的Application,那也很簡單!創(chuàng)建一個類繼承Application并在AndroidManifest.xml文件中的application標(biāo)簽中進行注冊(只需要給application標(biāo)簽增加name屬性,并添加自己的 Application的名字即可)。

啟動Application時,系統(tǒng)會創(chuàng)建一個PID,即進程ID,所有的Activity都會在此進程上運行。那么我們在Application創(chuàng)建的時候初始化全局變量,同一個應(yīng)用的所有Activity都可以取到這些全局變量的值,換句話說,我們在某一個Activity中改變了這些全局變量的值,那么在同一個應(yīng)用的其他Activity中值就會改變。

Application對象的生命周期是整個程序中最長的,它的生命周期就等于這個程序的生命周期。因為它是全局的單例的,所以在不同的Activity,Service中獲得的對象都是同一個對象。所以可以通過Application來進行一些,如:數(shù)據(jù)傳遞、數(shù)據(jù)共享和數(shù)據(jù)緩存等操作。

應(yīng)用場景:

在Android中,可以通過繼承Application類來實現(xiàn)應(yīng)用程序級的全局變量,這種全局變量方法相對靜態(tài)類更有保障,直到應(yīng)用的所有Activity全部被destory掉之后才會被釋放掉。

實現(xiàn)步驟:

1、繼承Application


public class CustomApplication extends Application {private static final String VALUE = "Harvey";private String value;@Overridepublic void onCreate(){super.onCreate();setValue(VALUE); // 初始化全局變量}public void setValue(String value){this.value = value;}public String getValue(){return value;} }

注:繼承Application類,主要重寫里面的onCreate()方法(android.app.Application包的onCreate()才是真正的Android程序的入口點),就是創(chuàng)建的時候,初始化變量的值。然后在整個應(yīng)用中的各個文件中就可以對該變量進行操作了。

2、在ApplicationManifest.xml文件中配置自定義的Application

<applicationandroid:name="CustomApplication"> </application>
3、FirstActivity.java


public class FirstActivity extends Activity {private CustomApplication app;@Overridepublic void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);app = (CustomApplication) getApplication(); // 獲得CustomApplication對象Log.i("FirstActivity", "初始值=====" + app.getValue()); // 獲取進程中的全局變量值,看是否是初始化值app.setValue("Harvey Ren"); // 重新設(shè)置值Log.i("FirstActivity", "修改后=====" + app.getValue()); // 再次獲取進程中的全局變量值,看是否被修改Intent intent = new Intent();intent.setClass(this, SecondActivity.class);startActivity(intent);} }

注:只需要調(diào)用Context的 getApplicationContext或者Activity的getApplication方法來獲得一個Application對象,然后再得到相應(yīng)的成員變量即可。它是代表我們的應(yīng)用程序的類,使用它可以獲得當(dāng)前應(yīng)用的主題和資源文件中的內(nèi)容等,這個類更靈活的一個特性就是可以被我們繼承,來添加我們自己的全局屬性。

4、SecondActivity.java

public class SecondActivity extends Activity {private CustomApplication app;@Overrideprotected void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);app = (CustomApplication) getApplication(); // 獲取應(yīng)用程序Log.i("SecondActivity", "當(dāng)前值=====" + app.getValue()); // 獲取全局值} }
5、最終AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?> <manifestxmlns:android="http://schemas.android.com/apk/res/android"package="com.android.test"android:versionCode="1"android:versionName="1.0"><uses-sdkandroid:minSdkVersion="8" /><applicationandroid:icon="@drawable/icon"android:label="@string/app_name"android:name="CustomApplication"><!-- 將我們以前一直用的默認Application設(shè)置成自定義的CustomApplication --><activityandroid:name=".FirstActivity"android:label="@string/app_name"><intent-filter><actionandroid:name="android.intent.action.MAIN" /><categoryandroid:name="android.intent.category.LAUNCHER" /></intent-filter></activity><activityandroid:name=".SecondActivity"android:label="@string/app_name"></activity></application> </manifest>

原文URL: http://www.cnblogs.com/renqingping/archive/2012/10/24/Application.html

總結(jié)

以上是生活随笔為你收集整理的Android中Application类用法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。