MyApplication.java 源代码
package base;
import activity.cloud.utils.BackgroundTasks;
import activity.live.LiveViewActivity;
import android.app.Activity;
import android.app.ActivityManager;
import android.app.Application;
import android.content.Context;
import android.os.Bundle;
import android.os.Process;
import android.support.multidex.MultiDex;
import android.util.Log;
import bean.CameraBean;
import bean.MyCamera;
import com.hichip.sdk.HiManageLib;
import com.hichip.system.HiSystemValue;
import common.HiDataValue;
import java.io.File;
import java.io.IOException;
import java.util.Calendar;
import java.util.List;
import main.GroMore.TTAdManagerHolder;
import main.MainActivity;
import main.NVR.live.LiveViewNVRActivity;
import main.NVR.live.Single.LiveViewSingleNVRActivity;
import main.live4.LandLiveActivity;
import main.live4.OSLandLiveActivity;
import org.greenrobot.eventbus.EventBus;
import push.HiPushManager;
import utils.AppManager;
import utils.FileCutCountUtil;
import utils.HiLogcatUtil;
import utils.HiTools;
import utils.SharePreUtils;
import utils.SystemUtils;
import zbar.QRZXBScanActivity;
public class MyApplication extends Application {
private static MyApplication instance;
public static boolean isADShow;
public static boolean isClickAD;
public static long mIsBackgroundTime;
private int activityCount;
public HiManageLib mHiManage;
private Process mLogProcess;
static int access$012(MyApplication myApplication, int i) {
int i2 = myApplication.activityCount + i;
myApplication.activityCount = i2;
return i2;
}
static int access$020(MyApplication myApplication, int i) {
int i2 = myApplication.activityCount - i;
myApplication.activityCount = i2;
return i2;
}
public static MyApplication getInstance() {
return instance;
}
@Override
public void onCreate() {
super.onCreate();
if (instance == null) {
instance = this;
}
BackgroundTasks.initInstance();
registerActivityLifecycleCallbacks(new LifeRecycle());
if (SharePreUtils.getBoolean(HiDataValue.CACHE, this, "isAcceptAgreement", false) && shouldInit()) {
this.mHiManage = new HiManageLib();
new HiPushManager(instance).registPush();
TTAdManagerHolder.init(this);
}
}
public void Hi_doappinit() {
if (shouldInit()) {
if (instance == null) {
instance = this;
}
this.mHiManage = new HiManageLib();
}
}
public void openSDKLog() {
HiSystemValue.DEBUG_MODE = true;
HiSystemValue.LEVELFLAG = 1;
HiManageLib hiManageLib = this.mHiManage;
if (hiManageLib != null) {
hiManageLib.SetDebugFlag(127, 1, 1, 1, 1, 1, 1, 1);
}
}
public void openSDKLogAll() {
HiSystemValue.DEBUG_MODE = true;
HiSystemValue.LEVELFLAG = 0;
HiManageLib hiManageLib = this.mHiManage;
if (hiManageLib != null) {
hiManageLib.SetDebugFlag(127, 1, 0, 0, 1, 0, 0, 0);
}
}
public void shutdownSDKLog() {
HiSystemValue.DEBUG_MODE = false;
HiManageLib hiManageLib = this.mHiManage;
if (hiManageLib != null) {
hiManageLib.SetDebugFlag(0, 0, 0, 0, 0, 0, 0, 1);
}
}
public void startFileCutCount() {
FileCutCountUtil.getSingleton().startCount();
}
public void endFileCutCount() {
FileCutCountUtil.getSingleton().endCount();
}
public void openWriteLog() {
try {
Log.d("MyApp", "PID is " + Process.myPid());
Calendar calendar = Calendar.getInstance();
File file = new File(HiDataValue.getRunLogPath(this));
if (!file.exists()) {
file.mkdirs();
}
Process exec = Runtime.getRuntime().exec(String.format("logcat -v time -f %s", String.format(HiDataValue.getRunLogPath(this) + "CamHipro-%04d.%02d.%02d-%02d.%02d.%02d.txt", Integer.valueOf(calendar.get(1)), Integer.valueOf(calendar.get(2) + 1), Integer.valueOf(calendar.get(5)), Integer.valueOf(calendar.get(11)), Integer.valueOf(calendar.get(12)), Integer.valueOf(calendar.get(13)))));
this.mLogProcess = exec;
exec.getOutputStream();
} catch (IOException e) {
e.printStackTrace();
}
}
public void shutdownWriteLog() {
Process process = this.mLogProcess;
if (process != null) {
process.destroy();
}
}
@Override
public void onTerminate() {
super.onTerminate();
shutdownWriteLog();
}
private boolean shouldInit() {
if (SystemUtils.isHuaweiMobile(this)) {
return true;
}
ActivityManager activityManager = (ActivityManager) getSystemService("activity");
if (activityManager == null) {
return false;
}
List<ActivityManager.RunningAppProcessInfo> runningAppProcesses = activityManager.getRunningAppProcesses();
String packageName = getPackageName();
int myPid = Process.myPid();
for (ActivityManager.RunningAppProcessInfo runningAppProcessInfo : runningAppProcesses) {
if (runningAppProcessInfo.pid == myPid && packageName.equals(runningAppProcessInfo.processName)) {
return true;
}
}
return false;
}
public void HI_doDisConnect(MyCamera myCamera) {
HiLogcatUtil.e("onActivityCreated" + HiDataValue.quitAPP + "::" + HiDataValue.isNeedkillNoMain);
if (HiDataValue.quitAPP || HiDataValue.isNeedkillNoMain) {
return;
}
HiLogcatUtil.i("APP ");
if (myCamera.getIsLiteOs() && myCamera.getConnectState() == 4) {
EventBus.getDefault().post(new CameraBean(1, myCamera));
}
myCamera.isFloatingW = false;
}
class LifeRecycle implements Application.ActivityLifecycleCallbacks {
@Override
public void onActivityCreated(Activity activity2, Bundle bundle) {
}
@Override
public void onActivityDestroyed(Activity activity2) {
}
@Override
public void onActivityPaused(Activity activity2) {
}
@Override
public void onActivityResumed(Activity activity2) {
}
@Override
public void onActivitySaveInstanceState(Activity activity2, Bundle bundle) {
}
LifeRecycle() {
}
@Override
public void onActivityStarted(Activity activity2) {
MyApplication.access$012(MyApplication.this, 1);
}
@Override
public void onActivityStopped(Activity activity2) {
MyApplication.access$020(MyApplication.this, 1);
HiLogcatUtil.e("onActivityCreated" + activity2.getLocalClassName() + "::" + MyApplication.this.activityCount + HiDataValue.CURRENT_CAMERA_UID + HiTools.isOtherLiteosDev(HiDataValue.CURRENT_CAMERA_UID) + HiTools.is4GLiteOSDev(HiDataValue.CURRENT_CAMERA_UID) + QRZXBScanActivity.CHOOSE_QRCODE + HiDataValue.quitAPP + HiDataValue.isAPChooseWifi + HiDataValue.isNeedkillNoMain);
if (MyApplication.this.activityCount == 0) {
if ((HiDataValue.CURRENT_CAMERA_UID.contains("LITE") || HiTools.isOtherLiteosDev(HiDataValue.CURRENT_CAMERA_UID) || HiTools.is4GLiteOSDev(HiDataValue.CURRENT_CAMERA_UID)) && !QRZXBScanActivity.CHOOSE_QRCODE && !HiDataValue.quitAPP && !HiDataValue.isAPChooseWifi && !HiDataValue.isNeedkillNoMain) {
HiLogcatUtil.e("onActivityCreated" + activity2.getLocalClassName() + "::" + MyApplication.this.activityCount);
AppManager.getInstance().killAllActivityNoMain(MainActivity.class);
HiDataValue.CURRENT_CAMERA_UID = "";
}
if (!HiTools.isOtherLiteosDev(HiDataValue.CURRENT_CAMERA_UID) && !HiTools.is4GLiteOSDev(HiDataValue.CURRENT_CAMERA_UID) && !HiDataValue.isNeedkillNoMain) {
HiLogcatUtil.e("onActivityCreated" + activity2.getLocalClassName() + "::" + MyApplication.this.activityCount);
AppManager.getInstance().killActivity(LiveViewActivity.class);
AppManager.getInstance().killActivity(LandLiveActivity.class);
AppManager.getInstance().killActivity(OSLandLiveActivity.class);
AppManager.getInstance().killActivity(LiveViewSingleNVRActivity.class);
AppManager.getInstance().killActivity(LiveViewNVRActivity.class);
}
HiLogcatUtil.e("onActivityCreated" + HiDataValue.quitAPP + "::" + HiDataValue.isNeedkillNoMain);
if (HiDataValue.quitAPP) {
return;
}
HiLogcatUtil.i("APP 退到了后台或者黑屏");
if (!MyApplication.isClickAD) {
if (!MyApplication.isADShow && AppManager.mActivityStack != null && AppManager.mActivityStack.size() == 1 && AppManager.mActivityStack.get(0).getClass() == MainActivity.class) {
MyApplication.mIsBackgroundTime = System.currentTimeMillis();
}
} else {
MyApplication.isClickAD = false;
}
for (MyCamera myCamera : HiDataValue.CameraList) {
if (myCamera.getIsLiteOs() && myCamera.getConnectState() == 4 && !myCamera.isFloatingW) {
EventBus.getDefault().post(new CameraBean(1, myCamera));
}
}
}
}
}
@Override
protected void attachBaseContext(Context context) {
super.attachBaseContext(context);
MultiDex.install(this);
}
}