mirror of
https://gitee.com/beecue/fastbee.git
synced 2025-12-17 16:36:03 +08:00
126 lines
3.6 KiB
Java
126 lines
3.6 KiB
Java
package com.kerwin.wumei;
|
|
|
|
import android.app.Application;
|
|
import android.content.BroadcastReceiver;
|
|
import android.content.Context;
|
|
import android.content.Intent;
|
|
import android.content.IntentFilter;
|
|
import android.location.LocationManager;
|
|
import android.net.wifi.WifiManager;
|
|
import android.os.Build;
|
|
|
|
import androidx.lifecycle.LifecycleOwner;
|
|
import androidx.lifecycle.MutableLiveData;
|
|
import androidx.lifecycle.Observer;
|
|
import androidx.multidex.MultiDex;
|
|
|
|
import com.kerwin.wumei.http.interceptor.CustomLoggingInterceptor;
|
|
import com.kerwin.wumei.utils.SettingSPUtils;
|
|
import com.kerwin.wumei.utils.sdkinit.ANRWatchDogInit;
|
|
import com.kerwin.wumei.utils.sdkinit.UMengInit;
|
|
import com.kerwin.wumei.utils.sdkinit.XBasicLibInit;
|
|
import com.kerwin.wumei.utils.sdkinit.XUpdateInit;
|
|
import com.xuexiang.xhttp2.XHttpSDK;
|
|
|
|
import static com.kerwin.wumei.utils.SettingUtils.getServeUrl;
|
|
|
|
/**
|
|
* @author xuexiang
|
|
* @since 2018/11/7 下午1:12
|
|
*/
|
|
public class MyApp extends Application {
|
|
|
|
private static MyApp app;
|
|
private MutableLiveData<String> mBroadcastData;
|
|
|
|
private BroadcastReceiver mReceiver = new BroadcastReceiver() {
|
|
@Override
|
|
public void onReceive(Context context, Intent intent) {
|
|
String action = intent.getAction();
|
|
if (action == null) {
|
|
return;
|
|
}
|
|
|
|
switch (action) {
|
|
case WifiManager.NETWORK_STATE_CHANGED_ACTION:
|
|
case LocationManager.PROVIDERS_CHANGED_ACTION:
|
|
mBroadcastData.setValue(action);
|
|
break;
|
|
}
|
|
}
|
|
};
|
|
|
|
@Override
|
|
protected void attachBaseContext(Context base) {
|
|
super.attachBaseContext(base);
|
|
//解决4.x运行崩溃的问题
|
|
MultiDex.install(this);
|
|
}
|
|
|
|
@Override
|
|
public void onCreate() {
|
|
super.onCreate();
|
|
initLibs();
|
|
initHttp();
|
|
app = this;
|
|
mBroadcastData = new MutableLiveData<>();
|
|
IntentFilter filter = new IntentFilter(WifiManager.NETWORK_STATE_CHANGED_ACTION);
|
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
|
|
filter.addAction(LocationManager.PROVIDERS_CHANGED_ACTION);
|
|
}
|
|
registerReceiver(mReceiver, filter);
|
|
}
|
|
|
|
@Override
|
|
public void onTerminate() {
|
|
super.onTerminate();
|
|
unregisterReceiver(mReceiver);
|
|
}
|
|
|
|
public static MyApp getInstance() {
|
|
return app;
|
|
}
|
|
|
|
public void observeBroadcast(LifecycleOwner owner, Observer<String> observer) {
|
|
mBroadcastData.observe(owner, observer);
|
|
}
|
|
|
|
|
|
/**
|
|
* 初始化基础库
|
|
*/
|
|
private void initLibs() {
|
|
XBasicLibInit.init(this);
|
|
|
|
XUpdateInit.init(this);
|
|
|
|
//运营统计数据运行时不初始化
|
|
if (!MyApp.isDebug()) {
|
|
UMengInit.init(this);
|
|
}
|
|
|
|
//ANR监控
|
|
ANRWatchDogInit.init();
|
|
}
|
|
|
|
private void initHttp() {
|
|
XHttpSDK.init(this); //初始化网络请求框架,必须首先执行
|
|
XHttpSDK.setSuccessCode(200);
|
|
XHttpSDK.debug(); //需要调试的时候执行
|
|
XHttpSDK.debug(new CustomLoggingInterceptor()); //设置自定义的日志打印拦截器
|
|
XHttpSDK.setBaseUrl(getServeUrl()); //设置网络请求的基础地址
|
|
// XHttpSDK.addInterceptor(new CustomDynamicInterceptor()); //设置动态参数添加拦截器
|
|
// XHttpSDK.addInterceptor(new CustomExpiredInterceptor()); //请求失效校验拦截器
|
|
}
|
|
|
|
|
|
/**
|
|
* @return 当前app是否是调试开发模式
|
|
*/
|
|
public static boolean isDebug() {
|
|
return BuildConfig.DEBUG;
|
|
}
|
|
|
|
|
|
}
|