您好,登錄后才能下訂單哦!
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; @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中不可以執行耗時操作,否則會影響程序的啟動時間
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。