织梦CMS - 轻松建站从此开始!

沙龙娱乐网_沙龙国际娱乐网_沙龙国际娱乐官网

当前位置: 主页 > 沙龙娱乐场 >

Android socket runningOnMainThread Error

时间:2017-07-18 06:41来源:未知 作者:admin 点击:
我有一个长连接心跳包service,每3秒发一次,发的时候没有问题,收服务器的应答时遇到一个诡异的错误。 我是新开了一个thread来运行这个runable, sendMsg() 可以发给服务器,也可以打印

我有一个长连接心跳包service,每3秒发一次,发的时候没有问题,收服务器的应答时遇到一个诡异的错误。
我是新开了一个thread来运行这个runable,sendMsg()可以发给服务器,也可以打印出Log.d(TAG, "Send HeartBeat");。但是到recvMsg()时,会抛出 InternetRunningOnMainThread异常. 我很困惑,recvMsg和sendMsg不是在同一个thread里运行吗?为什么会有异常?
我的暂时的解决方案是可以在recvMsg再开一个新的thread,这样就没有异常。而且我不用心跳包机制只是单次查询应答的时候没有这个问题。

public void initAndStartHeartBeat(){
    new Thread(new Runnable() {
        @Override
        public void run() {
            if(initSocket()){
                startHeartBeatrunable();
            }
        }
    }).start();
}

private Runnable heartBeatRunnable = new Runnable() {
    @Override
    public void run() {
        if (System.currentTimeMillis() - lastHBSendTime 
      
      (责任编辑:admin)
织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
推荐内容