添加安卓端基本功能

This commit is contained in:
kerwincui
2021-05-19 15:46:10 +08:00
parent 6ae09fc6dc
commit a7c6f99c6f
260 changed files with 16889 additions and 0 deletions

View File

@@ -0,0 +1,114 @@
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.BuildConfig;
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 java.util.HashMap;
import java.util.Map;
/**
* @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();
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();
}
/**
* @return 当前app是否是调试开发模式
*/
public static boolean isDebug() {
return BuildConfig.DEBUG;
}
}