java.lang.RuntimeException: Handler (android.os.Handler) sending message to a Handler on a dead thre

1 问题描述

app内部切换Activity或者Fragment都会出现

java.lang.RuntimeException: Handler (android.os.Handler) sending message to a Handler on a dead thread


2 问题分析

google找到类似问题,基本都是以下情况:

http://stackoverflow.com/questions/20059188/java-lang-runtimeexception-handler-android-os-handler-sending-message-to-a-ha

但是在app中并没有使用在线程中使用Toast的情况,并且我的情况是只要Activity跳转,Fragment跳转都会出现

java.lang.RuntimeException: Handler (android.os.Handler) sending message to a Handler on a dead thread

所以初步推测和具体的Activity无关,和BaseActivity有关

BaseActivity中运行到onPuase就会出现这个WARNING,跟踪日志进入QueueMessage,找到抛异常的地方,但是

无果

验证和BaseActivity有没有关系,创建一个继承自原生Activity的类TestActivity,分别跳转到继承BaseActivity的类和继承

Activity的类,都会在onPause出现

java.lang.RuntimeException: Handler (android.os.Handler) sending message to a Handler on a dead thread

初步推测与BaseActivity无关

猜测是否与Application相关,可能是导入的第三方框架导致相关问题

最终利用控制变量法发现在Application中注释IntentService,问题消失,所以查看IntentService

IntentService中控制变量法找到原因

在IntentService的onHandleIntent方法中调用了第三方AppsFlyerLib.getInstance().startTracking(MyApplication.getInstance(), Constants.APPSFLYER_ID);

onHandleIntent在线程中执行,AppsFlyerLib只能在主线程初始化

AppsFlyerLib移出IntentService,放在Application的onCreate方法中初始化即可




  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值