android系统会为每个程序运行时创建一个Application类的对象且仅创建一个,所以Application可以说是单例 (singleton)模式的一个类.且application对象的生命周期是整个程序中最长的,它的生命周期就等于这个程序的生命周期。因为它是全局的单例的,所以在不同的Activity,Service中获得的对象都是同一个对象。所以通过Application来进行一些数据传递,数据共享,数据缓存等操作。
android软件执行的顺序为先执行Application类的onCreate方法,然后再执行主Activity的onCreate方法。
自定义一个Application类需要进行以下操作:
一、创建Application类,继承android.app.Application类,重写onCreate方法
package com.smallart.myapplication; import android.os.Build; import android.util.Log; import android.view.View; import com.smallart.myapplication.stub.base.ComponentContext; import com.smallart.myapplication.stub.utils.LogUtil; import com.smallart.myapplication.stub.utils.Utils; public class Application extends android.app.Application{ public static boolean isInit = false; public static boolean sNetWorkAbale = false; public static int sWaitTime = 5; String jsonConfig = null; private long loadtime = 0L; @Override public void onCreate() { super.onCreate(); this.loadtime = System.currentTimeMillis(); ComponentContext.setContext(this); isInit = false; } }
二、修改AndroidManifest.xml
<application android:name="com.smallart.myapplication.Application" android:configChanges="orientation|keyboardHidden" android:allowBackup="true" android:icon="@mipmap/ic_app_icon" android:label="@string/app_name" android:roundIcon="@mipmap/ic_app_icon_round" android:largeHeap="true" android:supportsRtl="true" android:theme="@style/Theme.AppCompat.Light.NoActionBar"> </application>
修改代码中红色字体android:name的值为自定义的Application类。