您好,登錄后才能下訂單哦!
Android下關(guān)于Application的使用
1、Application和Activity,Service一樣,是android框架的一個(gè)系統(tǒng)組件,當(dāng)android程序啟動時(shí)系統(tǒng)會創(chuàng)建一個(gè) application對象,用來存儲系統(tǒng)的一些信息。通常我們是不需要指定一個(gè)Application的,這時(shí)系統(tǒng)會自動幫我們創(chuàng)建,如果需要創(chuàng)建自己 的Application,也很簡單創(chuàng)建一個(gè)類繼承 Application并在manifest的application標(biāo)簽中進(jìn)行注冊(只需要給Application標(biāo)簽增加個(gè)name屬性把自己的 Application的名字定入即可)。
2、ndroid系統(tǒng)會為每個(gè)程序運(yùn)行時(shí)創(chuàng)建一個(gè)Application類的對象且僅創(chuàng)建一個(gè),所以Application可以說是單例 (singleton)模式的一個(gè)類.且application對象的生命周期是整個(gè)程序中最長的,它的生命周期就等于這個(gè)程序的生命周期。因?yàn)樗侨?的單例的,所以在不同的Activity,Service中獲得的對象都是同一個(gè)對象。所以通過Application來進(jìn)行一些,數(shù)據(jù)傳遞,數(shù)據(jù)共享 等,數(shù)據(jù)緩存等操作。
//創(chuàng)建一個(gè)DemoApplication類繼承Application實(shí)現(xiàn)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; } }
//在需要使用的地方調(diào)用DemoApplication中的數(shù)據(jù),達(dá)到數(shù)據(jù)共享
public class MainActivity extends Activity { private DemoApplication app; @Override protected 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中不可以執(zhí)行耗時(shí)操作,否則會影響程序的啟動時(shí)間
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。