CSipIm断网重连崩溃原因分析
断网重连之后的操作流程
拨打电话
->调用SipService.makeCallOptions(),先重启一遍SipService保证PjSipService的各参数正常,尤其是create参数置为true;再发送broadcast处理拨号信息
->SipService中的Receiver接收到broadcast,在内部用全局Handler接收SipRunnable执行底层拨号操作
原因分析
此时由于Handler从旧的MessagePool中获取到的消息赋值之后,SipService才执行完重启操作,而重启之后的MessagePool中重新置为0,(可参考SipService.SipServiceExecutor的countId参数);这样新发送的Message在handleMessage()中就无法获取到正常的Message,于是某些三星或小米手机认为消息队列异常报错!
———————————————————————————————转载请注明出处:白少木丿—————————————————