需求场景:
APP底部的五个tab要求可以运营人员在管理系统上自己配置,然而管理系统上并没有对配置的文件进行校验,因此接口返回给APP端的链接可能不是正确的Json,比如可能是一个图片的链接,这时如果直接用LottieAnimationView加载这个链接就会导致崩溃,因此给出的解决方案是:如果崩溃,就加载本地的Json文件,这个问题的难点是如何捕捉到崩溃
1:最开始尝试了使用try/catch,但是发现捕捉不到崩溃
try {
lottieAnimationView.setAnimationFromUrl();
}catch (Exception e) {
}
2:于是寻求LottieAnimationView是否有自身监听加载失败的方法,发现以下方法可用:
LottieTask<LottieComposition> lottieCompositionLottieTask = LottieCompositionFactory.fromUrl(this, url);
lottieCompositionLottieTask.addListener(new LottieListener<LottieComposition>() {
@Override
public void onResult(LottieComposition result) { //表明加载成功
lottie.setComposition(result);
}
}).addFailureListener(new LottieListener<Throwable>() {
@Override
public void onResult(Throwable result) {
//这里可以打印错误日志,也可以进行其他操作
}
});
网友评论