Android中Application类用法
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
注:繼承Application類,主要重寫里面的onCreate()方法(android.app.Application包的onCreate()才是真正的Android程序的入口點),就是創(chuàng)建的時候,初始化變量的值。然后在整個應(yīng)用中的各個文件中就可以對該變量進行操作了。
2、在ApplicationManifest.xml文件中配置自定義的Application
<applicationandroid:name="CustomApplication"> </application>3、FirstActivity.java
注:只需要調(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)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 看Volley源码,对HTTP缓存机制分
- 下一篇: Android高效加载大图、多图解决方案