1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- package com.emato.ich.crash;
- import android.app.Activity;
- import android.app.Application;
- import android.util.Log;
- import androidx.annotation.NonNull;
- import androidx.appcompat.widget.TooltipCompat;
- import com.cherry.sdk.controller.BuildConfig;
- import com.emato.ich.MainActivity;
- import com.emato.ich.update.UpdateService;
- import com.xuexiang.xupdate.XUpdate;
- import com.xuexiang.xupdate.entity.UpdateError;
- import com.xuexiang.xupdate.listener.OnUpdateFailureListener;
- import com.xuexiang.xupdate.proxy.IUpdateHttpService;
- import com.xuexiang.xupdate.utils.UpdateUtils;
- import org.jetbrains.annotations.NotNull;
- import java.util.ArrayList;
- import java.util.List;
- import java.util.Map;
- public class CrashApplication extends Application {
- private final List<Activity> mActivityList = new ArrayList<>();
- private static final String TAG = CrashApplication.class.getName();
- @Override
- public void onCreate() {
- super.onCreate();
- UncaughtExceptionHandlerImpl.getInstance().init(getApplicationContext(), BuildConfig.DEBUG, true, 1000, MainActivity.class);
- //设置版本更新出错的监听
- XUpdate.get()
- .debug(true)
- .isWifiOnly(true) //默认设置只在wifi下检查版本更新
- .isGet(false) //默认设置使用get请求检查版本
- .isAutoMode(true) //默认设置非自动模式,可根据具体使用配置
- .param("versionCode", UpdateUtils.getVersionCode(this)) //设置默认公共请求参数
- .param("appKey", getPackageName())
- .setOnUpdateFailureListener(error -> {
- Log.i(TAG, "onCreate: 自动更新失败! " + error.getCode());
- })
- .supportSilentInstall(true) //设置是否支持静默安装,默认是true
- .setIUpdateHttpService(new UpdateService()) //这个必须设置!实现网络请求功能。
- .init(this); //这个必须初始化
- }
- /**
- * 添加单个Activity
- */
- public void addActivity(Activity activity) {
- // 为了避免重复添加,需要判断当前集合是否满足不存在该Activity
- if (!mActivityList.contains(activity)) {
- mActivityList.add(activity); // 把当前Activity添加到集合中
- }
- }
- /**
- * 销毁单个Activity
- */
- public void removeActivity(Activity activity) {
- // 判断当前集合是否存在该Activity
- if (mActivityList.contains(activity)) {
- mActivityList.remove(activity); // 从集合中移除
- if (activity != null){
- activity.finish(); // 销毁当前Activity
- }
- }
- }
- /**
- * 销毁所有的Activity
- */
- public void removeAllActivity() {
- // 通过循环,把集合中的所有Activity销毁
- for (Activity activity : mActivityList) {
- if (activity != null){
- activity.finish();
- }
- }
- //杀死该应用进程
- android.os.Process.killProcess(android.os.Process.myPid());
- }
- @Override
- public void onLowMemory() {
- super.onLowMemory();
- System.gc();
- }
- }
|