手机QQ,在待机的时候,从其他QQ发来的数据,能响下,并且接收了数据,
这个是怎么实现的呢。因为在手机上建立SOCKET的小服务器,待机下去后,
从PC端发送请求连接,是连接不上的,
如果没有待机,这个连接是正常的,是否需要设置什么呢。

解决方案 »

  1.   

    开一个service,service里起一个线程来接受数据
      

  2.   

    程序本来就是在Service的线程中跑的了,
    待机下去后,PC去连接,是连不上的,不知道有什么设置没有。
      

  3.   

    首先你得弄懂QQ通信的机制:手机QQ客户端、以及QQ服务器端QQ服务器端每隔一定时间向客户端发送一个消息,以确定当前QQ客户端是否在线,如果服务端没有收到消息就认为客户端掉线了如果没有待机,客户端和服务端是正常通信的,所以能收到消息提醒可是手机进入待机时,CPU就休眠了,停止服务工作,当QQ服务端发送咨询信息时,没有得到QQ客户端的及时回应,就认为你不在线了,当有新消息来时,服务端就没有把新消息传给客户端,所以待机时收不到消息你PC端发送请求连接的频率是多少,多长时间发送一次请求?(比如3分钟)在你手机端的Service里面,只需每隔3分钟定时唤醒cpu(也即申请个电源锁PARTIAL_WAKE_LOCK),来处理pc端的请求连接,请求完毕后,释放电源锁这样手机无论是否待机,都可正常接受PC端发送的请求连接了
      

  4.   

    哇,不是这样的吧!QQ用户每天在线的几百万,那服务器吃的消啊,应该是客户端定时发送给服务端吧,服务端的每个连接应该有个类似timer的计时器,到了就自动断开连接销毁。楼主的说的待机其实是有后台有跑,后台连接还是在的。