標籤:application
Android下關於Application的使用
1、Application和Activity,Service一樣,是android架構的一個系統組件,當android程式啟動時系統會建立一個 application對象,用來儲存系統的一些資訊。通常我們是不需要指定一個Application的,這時系統會自動幫我們建立,如果需要建立自己 的Application,也很簡單建立一個類繼承 Application並在manifest的application標籤中進行註冊(只需要給Application標籤增加個name屬性把自己的 Application的名字定入即可)。
2、ndroid系統會為每個程式運行時建立一個Application類的對象且僅建立一個,所以Application可以說是單例 (singleton)模式的一個類.且application對象的生命週期是整個程式中最長的,它的生命週期就等於這個程式的生命週期。因為它是全域 的單例的,所以在不同的Activity,Service中獲得的對象都是同一個對象。所以通過Application來進行一些,資料傳遞,資料共用 等,資料緩衝等操作。
//建立一個DemoApplication類繼承Application實現onCreate()方法
public class DemoApplication extends Application{public String name = "tom";public void onCreate(){super.onCreate();Log.v("zd", "CustomApplication---------------onCreate");setName(name);}public String getName() {return name;}public void setName(String name) {this.name = name;}}
//在需要使用的地方調用DemoApplication中的資料,達到資料共用
public class MainActivity extends Activity {private DemoApplication app;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Log.v("zd", "MainActivity---------------onCreate");app = (DemoApplication) getApplication();Log.v("zd", app.getName());}protected void onStop() {super.onStop();Log.v("zd", "MainActivity---------------onStop");}protected void onDestory(){super.onDestroy();Log.v("zd", "MainActivity---------------onDestory");}}
//Manifest中在Application中增加name屬性即name="DemoApplication"
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.test02" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="18" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" android:name="DemoApplication" > <activity android:name="com.example.test02.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application></manifest>
//注意在DemoApplication中不可以執行耗時操作,否則會影響程式的啟動時間
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/6B/AF/wKioL1U0mDiBITExAADt2LfGYhc621.jpg" title="QQ20150420140156.png" alt="wKioL1U0mDiBITExAADt2LfGYhc621.jpg" />
本文出自 “爬過山見過海” 部落格,請務必保留此出處http://670176656.blog.51cto.com/4500575/1636012
Application的基本使用