请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于runOnce中的handleChildProc方法

handleChildProc方法中有一行代码ZygoteInit.closeServerSocket() 是什么意思,关闭了socket不就无法继续循环监听了么?

正在回答

1回答

您好,zygote正常工作是在一个while循环里面处理socket消息,如果退出循环说明异常了,这时候关闭socket没毛病。

1 回复 有任何疑惑可以回复我~
  • 提问者 慕函数5317433 #1
    老师你好,我还是没搞懂,我看的是6.0.0的源码,ZygoteConnection.java的handleChildProc方法第一二行代码就是关闭Socket,也没有放在异常处理逻辑里面;看注释也是说native code关闭了连接,但是代码执行到handleChildProc方法不应该是正确流程,怎么会是异常呢?
    回复 有任何疑惑可以回复我~ 2019-07-04 21:17:07
  • 风语 回复 提问者 慕函数5317433 #2
    您好,我之前提到的异常是指的zygote进程。对于普通的应用进程,这个socket是从zygote继承过来的,应用进程跨进程通信用Binder,不需要用到socket,所以可以直接关掉。
    回复 有任何疑惑可以回复我~ 2019-07-05 00:36:44
  • 提问者 慕函数5317433 回复 风语 #3
    明白了,谢谢
    回复 有任何疑惑可以回复我~ 2019-07-14 10:25:15
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信