退出Activity时清理bitmap

退出LiveActivity时,清理SVGA
新增检测到触发未捕获异常闪退时,直接退出不再重新加载
优化一处LiveActivity所持有的静态view,防止内存泄漏
更新SVGAPlayer库
This commit is contained in:
2022-10-06 11:43:06 +08:00
parent 39b4a52ade
commit dd97d35851
12 changed files with 62 additions and 14 deletions

View File

@@ -6,6 +6,7 @@ import android.content.Context;
import android.net.http.HttpResponseCache;
import android.os.Bundle;
import android.os.Message;
import android.os.Process;
import android.text.TextUtils;
import android.util.Log;
@@ -28,6 +29,7 @@ import com.yunbao.common.BuildConfig;
import com.yunbao.common.CommonAppConfig;
import com.yunbao.common.CommonAppContext;
import com.yunbao.common.Constants;
import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.http.CommonHttpUtil;
import com.yunbao.common.http.HttpCallback;
import com.yunbao.common.manager.imrongcloud.InstructorSendReward;
@@ -47,7 +49,9 @@ import com.yunbao.main.activity.MsgSettActivity;
import java.io.File;
import java.io.IOException;
import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.List;
import io.rong.imkit.config.RongConfigCenter;
import io.rong.imlib.RongIMClient;
@@ -72,6 +76,7 @@ public class AppContext extends CommonAppContext {
public static AppContext sInstance;
public LiveImDeletUtil liveImDeletUtil;
private final static List<WeakReference<Activity>> activities = new ArrayList<>();
private static final class AdjustLifecycleCallbacks implements ActivityLifecycleCallbacks {
@Override
@@ -96,12 +101,12 @@ public class AppContext extends CommonAppContext {
@Override
public void onActivityDestroyed(@NonNull Activity activity) {
activities.remove(activity);
}
@Override
public void onActivityCreated(@NonNull Activity activity, @Nullable Bundle savedInstanceState) {
activities.add(new WeakReference<>(activity));
}
@Override
@@ -115,7 +120,7 @@ public class AppContext extends CommonAppContext {
public void onCreate() {
super.onCreate();
//注册全局异常捕获
// registerError();
registerError();
sInstance = this;
L.setDeBug(BuildConfig.DEBUG);
AppEventsLogger.activateApp(this);
@@ -249,7 +254,7 @@ public class AppContext extends CommonAppContext {
});
configSPApp();
//初始化美颜SDK
// FaceManager.initFaceUnity(this);
// FaceManager.initFaceUnity(this);
}
/**
@@ -288,6 +293,14 @@ public class AppContext extends CommonAppContext {
.setMainCrashHandler((t, e) -> {
Log.e("ApplicationError", "主线程异常");//此处log只是展示当debug为true时主类内部log会打印异常信息
e.printStackTrace();
//闪退后finish所有Activity并且杀死进程
for (WeakReference<Activity> activity : activities) {
if (activity != null) {
activity.get().finish();
}
}
Process.killProcess(Process.myPid());
System.exit(0);
})
.setUncaughtCrashHandler((t, e) -> {
Log.e("ApplicationError", "子线程异常");//此处log只是展示当debug为true时主类内部log会打印异常信息

View File

@@ -46,7 +46,7 @@ public class NeverCrashUtils {
* 注意跨线程操作的可能
*/
public NeverCrashUtils setMainCrashHandler(MainCrashHandler mainCrashHandler) {
mainCrashHandler = mainCrashHandler;
this.mainCrashHandler = mainCrashHandler;
return this;
}
@@ -98,6 +98,7 @@ public class NeverCrashUtils {
Toast.makeText(application, "发生闪退", Toast.LENGTH_SHORT).show();
// FileUtil.saveStringToFile(new File(application.getDir("files", Context.MODE_PRIVATE).getAbsolutePath()),throwableToString(e),"error.log");
getMainCrashHandler().mainException(Looper.getMainLooper().getThread(), e);
}
}
});