123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- package com.emato.ich.crash;
- import android.app.Activity;
- import android.app.Application;
- import android.content.Context;
- 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.CustomUpdateConfigProvider;
- import com.emato.ich.update.UpdateService;
- import com.xuexiang.xupdate.XUpdate;
- import com.xuexiang.xupdate.aria.AriaDownloadServiceProxyImpl;
- import com.xuexiang.xupdate.easy.EasyUpdate;
- import com.xuexiang.xupdate.easy.config.UpdateConfig;
- 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();
- CustomUpdateConfigProvider provider = new CustomUpdateConfigProvider();
- @Override
- protected void attachBaseContext(Context base) {
- // XUpdate自定义配置
- EasyUpdate.setUpdateConfigProvider(provider);
- super.attachBaseContext(base);
- }
- @Override
- public void onCreate() {
- super.onCreate();
- UncaughtExceptionHandlerImpl.getInstance().init(getApplicationContext(), BuildConfig.DEBUG, true, 1000, MainActivity.class);
- // XUpdate.get()
- // .debug(true)
- // .isWifiOnly(false) //默认设置只在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();
- }
- }
|