这个确实是个问题 |
又是小米手机,小米的神隐模式最坑了,关于小米的神隐模式问题及解决方法,看看我在这个帖子2楼的回复:http://www.52im.net/thread-354-1-1.html |
引用:JackJiang 发表于 2016-07-01 22:47 恩,小米手机。好的谢谢。 |
引用:Casi 发表于 2016-07-01 21:30 你的是小米手机吗? 别跟qq比,市面上的手机都会对qq和微信做特殊处理,一般的app不会有这待遇 |
引用:JackJiang 发表于 2016-07-01 15:32 对了我发现一个奇怪的问题,打印检测当前网络状态的时候(我是调用你源码的方法)手机黑屏一会就UDP掉线同时打印:【IMCORE】【本地网络通知】检测本地网络连接断开了!但是我QQ为什么这个时候还能收到消息?这个是QQ的特殊保活机制吗 |
引用:JackJiang 发表于 2016-07-01 15:32 恩,我放在service里面启动的,进程没死,因为我在seivice里面加了个线程每间隔3秒打印一条日志它会一直打印,但是IM的UDP过一会就报监听停止,网络也没断,我尝试给我QQ发消息手机QQ还是可以收到的。我尝试在在源码这个catch报错地方设置一个标志,报错后调用service里面的一个重置方法,重置实现的具体思路是先调用IMClientManager.getInstance(this).release();,然后初始化发送登录包结果。结果是加了IMClientManager.getInstance(this).release();这行代码后,一次也登录不成功。 |
我忽然想到,你这线程并没有死,因为你说它“一直在打印log”,你可查下那个异常。 但如果是你的手机省电策略粗爆地把网络关了,那就没招了。 通常说的保活是线程保活,只要线程不死,基本上不会问题,除非你手机自动把网络给关了。这块每个android手机可能都有点不一样,因为省电策略不一样,这也是android手机最难搞的地方,你可以有针对性地查查 |
这需要实现系统自启动的后台服务,用于进程保活和网络保活,你可以参考微信的实现思路:http://www.52im.net/thread-210-1-1.html、http://www.52im.net/thread-209-1-1.html。 更多心跳保活的文章请参考:http://www.52im.net/forum.php?mod=collection&action=view&ctid=17 |