package com.basic.security.base;
|
|
import android.app.Activity;
|
import android.app.Application;
|
import android.app.Service;
|
import android.content.Context;
|
import android.content.Intent;
|
import android.content.pm.PackageInfo;
|
import android.content.pm.PackageManager;
|
import android.os.Build;
|
|
import com.basic.security.activity.MainActivity;
|
import com.basic.security.manager.DeviceManager;
|
import com.basic.security.model.ModelAdapter;
|
import com.basic.security.utils.Config;
|
import com.basic.security.utils.Constants;
|
import com.basic.security.utils.NetUtil;
|
import com.scwang.smartrefresh.layout.SmartRefreshLayout;
|
import com.scwang.smartrefresh.layout.api.DefaultRefreshFooterCreator;
|
import com.scwang.smartrefresh.layout.api.DefaultRefreshHeaderCreator;
|
import com.scwang.smartrefresh.layout.api.RefreshFooter;
|
import com.scwang.smartrefresh.layout.api.RefreshHeader;
|
import com.scwang.smartrefresh.layout.api.RefreshLayout;
|
import com.scwang.smartrefresh.layout.footer.ClassicsFooter;
|
import com.scwang.smartrefresh.layout.header.ClassicsHeader;
|
|
import org.xutils.x;
|
|
import java.lang.reflect.Field;
|
import java.util.HashMap;
|
import java.util.LinkedList;
|
import java.util.List;
|
import java.util.ListIterator;
|
import java.util.Map;
|
import java.util.concurrent.ExecutorService;
|
import java.util.concurrent.Executors;
|
import java.util.concurrent.locks.Lock;
|
import java.util.concurrent.locks.ReentrantLock;
|
|
import interfaces.heweather.com.interfacesmodule.view.HeConfig;
|
|
//import com.facebook.drawee.backends.pipeline.Fresco;
|
public class BaseApplication extends Application {
|
static Map<String, String> localSetting = new HashMap(); // 获取设置的设备基本信息
|
private static BaseApplication application;
|
|
static {
|
//设置全局的Header构建器
|
SmartRefreshLayout.setDefaultRefreshHeaderCreator(new DefaultRefreshHeaderCreator() {
|
@Override
|
public RefreshHeader createRefreshHeader(Context context, RefreshLayout layout) {
|
layout.setPrimaryColorsId(com.basic.security.utils.RUtils.R_color_transparent, android.R.color.white);
|
return new ClassicsHeader(context);//.setTimeFormat(new DynamicTimeFormat("更新于 %s"));//指定为经典Header,默认是 贝塞尔雷达Header
|
}
|
});
|
//设置全局的Footer构建器
|
SmartRefreshLayout.setDefaultRefreshFooterCreator(new DefaultRefreshFooterCreator() {
|
@Override
|
public RefreshFooter createRefreshFooter(Context context, RefreshLayout layout) {
|
//指定为经典Footer,默认是 BallPulseFooter
|
return new ClassicsFooter(context).setDrawableSize(20);
|
}
|
});
|
}
|
|
public final Lock detectLock = new ReentrantLock();
|
public MainActivity activity;
|
public Map<String, String> devInfo = new HashMap<>();
|
public ExecutorService executorService = Executors.newCachedThreadPool();
|
private List<Activity> activitys = new LinkedList<>();
|
private List<Service> services = new LinkedList<>();
|
private ModelAdapter backTime;
|
|
public static BaseApplication getApplication() {
|
return application;
|
}
|
|
public static Map<String, String> getLocalSetting() {
|
return localSetting;
|
}
|
|
public void onTerminate() {
|
super.onTerminate();
|
}
|
|
@Override
|
public void onCreate() {
|
super.onCreate();
|
x.Ext.init(this);
|
// 检测内存泄漏
|
// LeakCanary.install(this);
|
// try {
|
// File errorLogFile = new File("/sdcard/crash/crash-"+new SimpleDateFormat("yyyy-MM-dd").format(new Date())+".log");
|
// if (errorLogFile.exists()){
|
// errorLogFile.delete();
|
// }
|
// } catch (Exception e) {
|
// e.printStackTrace();
|
// }
|
// ElastisearchUtil.test();
|
application = this;
|
// Fresco.initialize(this);
|
// registerActivityLifecycleCallbacks(new ActivityLifecycleCallbacks() {
|
// public void onActivityCreated(Activity activity, Bundle bundle) { }
|
// public void onActivityStarted(Activity activity) { }
|
// public void onActivityPaused(Activity activity) { }
|
// public void onActivitySaveInstanceState(Activity activity, Bundle bundle) { }
|
// public void onActivityStopped(Activity activity) {
|
// application.activity = null;
|
// }
|
// public void onActivityResumed(Activity activity) {
|
// application.activity = activity;
|
// }
|
// public void onActivityDestroyed(Activity activity) {
|
// application.activity = null;
|
// }
|
// });
|
init();
|
HeConfig.init("HE1811151724201473", "b5fe07c5d66c43d089e60baf2fa655ac");
|
HeConfig.switchToFreeServerNode();
|
// WifiManager wm = (WifiManager) getSystemService(WIFI_SERVICE);
|
// String ip = Formatter.formatIpAddress(wm.getConnectionInfo().getIpAddress());
|
String ip = NetUtil.getIPAddress(true);
|
Constants.deviceId = DeviceManager.getDeviceId();
|
// System.out.println("erlangLocalNode="+Constants.erlangLocalNode);
|
// if (ContextCompat.checkSelfPermission(getApplicationContext(), android.Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) {
|
// initLocalSetting();
|
// }
|
testFunction();
|
// Map<String, String> m = CouchbaseUtil.getDocumentStringMap(list.get(i));
|
// Log.e("", "")
|
// Log.e("AndroidUUID", "获取UUID:" + DeviceUuidFactory.getInstance(this).getDeviceUuid());
|
// CouchbaseUtil.database != null 为了解决CouchbaseUtil.database.getDocument为null
|
// if (CouchbaseUtil.database != null && CouchbaseUtil.database.getDocument(DeviceManager.getDeviceId()) == null) {
|
// ModelAdapter d = new ModelAdapter(DeviceManager.getDeviceId());
|
// d.setString("table", "device");
|
// d.setString("device_id", d.getId());
|
// d.setString("company_id", CompanyManager.getCompanyId());
|
// try {
|
// CouchbaseUtil.database.save(d);
|
// } catch (CouchbaseLiteException e) {
|
// e.printStackTrace();
|
// }
|
// }
|
if (Constants.useAlf) {
|
}
|
}
|
|
private void testFunction() {
|
}
|
|
public void init() {
|
com.basic.security.utils.CrashHandler.getInstance().init(this);
|
PackageManager packageManager = getPackageManager();
|
try {
|
PackageInfo packageInfo = packageManager.getPackageInfo(getPackageName(), PackageManager.GET_ACTIVITIES);
|
if (packageInfo != null) {
|
devInfo.put("versionName", packageInfo.versionName);
|
devInfo.put("versionCode", packageInfo.versionCode + "");
|
}
|
Field[] fields = Build.class.getDeclaredFields();
|
for (Field field : fields) {
|
field.setAccessible(true);
|
devInfo.put(field.getName(), field.get(null).toString());
|
}
|
} catch (PackageManager.NameNotFoundException e) {
|
e.printStackTrace();
|
} catch (IllegalAccessException e) {
|
e.printStackTrace();
|
}
|
Config.init();
|
}
|
|
public void closeApplication() {
|
closeActivitys();
|
closeServices();
|
}
|
|
private void closeActivitys() {
|
ListIterator<Activity> iterator = activitys.listIterator();
|
while (iterator.hasNext()) {
|
Activity activity = iterator.next();
|
if (activity != null) {
|
activity.finish();
|
}
|
}
|
}
|
|
private void closeServices() {
|
ListIterator<Service> iterator = services.listIterator();
|
while (iterator.hasNext()) {
|
Service service = iterator.next();
|
if (service != null) {
|
stopService(new Intent(this, service.getClass()));
|
}
|
}
|
}
|
}
|