Android自定義Application
阿新 • • 發佈:2018-11-22
自定義Application用途
1、為得到一個Application物件提供便捷。
2、封裝一些通用操作。
3、初始化一些全域性的變數資料。
對於前兩點,官方不建議這樣做,國灰使用一個單例模式同樣可以做到。但是自定義Application沒有任何副作用。而在Applicationr onCreate()方法裡去初始化各種全域性的變數資料是一種比較推薦的做法。
實戰
1、新建一個Application類,並讓它繼承Application
public class MyApplication extends Application{ private static Context mContext; @Override public void onCreate() { super.onCreate(); mContext = getApplicationContext(); } public static Context getInstance() { return mContext; } }
2、在AndroidManifest檔案中指定自定義的Application
<application
android:name=".MyApplication"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme" />
指定完成後,當我們的程式啟動時Android系統會建立一個MyApplication的例項,如果這裡不指定的和話就會預設建立一個Application的例項。
3、初始化資料的時機
我們不能夠在自定義的Application類的構造方法裡初始化一些需要Context引用操作得到的資料,這樣會報空指標錯誤。因為我們知道,所有Context的方法都是呼叫mBase物件的同名方法,而mBase是attachBaseContext方法後被賦值。我們應該在onCreate()方法中初始化。
4、不要採用單例模式
Application全域性只有一個,它本身就已經是單例了,無需再用單例模式。