CrashApplication.java 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. package com.emato.ich.crash;
  2. import android.app.Activity;
  3. import android.app.Application;
  4. import androidx.appcompat.widget.TooltipCompat;
  5. import com.cherry.sdk.controller.BuildConfig;
  6. import com.emato.ich.MainActivity;
  7. import java.util.ArrayList;
  8. import java.util.List;
  9. public class CrashApplication extends Application {
  10. private final List<Activity> mActivityList = new ArrayList<>();
  11. @Override
  12. public void onCreate() {
  13. super.onCreate();
  14. UncaughtExceptionHandlerImpl.getInstance().init(getApplicationContext(), BuildConfig.DEBUG, true, 1000, MainActivity.class);
  15. }
  16. /**
  17. * 添加单个Activity
  18. */
  19. public void addActivity(Activity activity) {
  20. // 为了避免重复添加,需要判断当前集合是否满足不存在该Activity
  21. if (!mActivityList.contains(activity)) {
  22. mActivityList.add(activity); // 把当前Activity添加到集合中
  23. }
  24. }
  25. /**
  26. * 销毁单个Activity
  27. */
  28. public void removeActivity(Activity activity) {
  29. // 判断当前集合是否存在该Activity
  30. if (mActivityList.contains(activity)) {
  31. mActivityList.remove(activity); // 从集合中移除
  32. if (activity != null){
  33. activity.finish(); // 销毁当前Activity
  34. }
  35. }
  36. }
  37. /**
  38. * 销毁所有的Activity
  39. */
  40. public void removeAllActivity() {
  41. // 通过循环,把集合中的所有Activity销毁
  42. for (Activity activity : mActivityList) {
  43. if (activity != null){
  44. activity.finish();
  45. }
  46. }
  47. //杀死该应用进程
  48. android.os.Process.killProcess(android.os.Process.myPid());
  49. }
  50. @Override
  51. public void onLowMemory() {
  52. super.onLowMemory();
  53. System.gc();
  54. }
  55. }