概述
项目中的需要做心跳连接的功能,需Activity中启动Service,该功能从开始到完成,遇到好几个问题,有几点需要注意:
1.在AS中创建aidl文件时,无法找到相应的java文件,后发现需要重新编译,方可生成相应的java文件
2.在Activity中使用bindService()无法启动Service,该点有以下注意:
a.在配置文件中android:enabled="true"属性,要设置为true,不可以为false,在网上一篇文章中对该属性这样介绍:android:enabled ---------- 如果此项设置为 true,那么 Service 将会默认被系统启动,不设置默认此项为 false;导致我始终无法启动Service,后来直接把Service配置成
<service android:name=".ui.document.BackService"/>,这样,才解决问题,enable属性默认是true,设置成false是无法启动Service的, startService和bindService都不行。
b.由于我使用Activity是在TabActivity下面的,因此在启动bindService的时候,要使用
getApplicationContext().bindService(mServiceIntent, conn, BIND_AUTO_CREATE);
直接在bindService是启动不了Service的,在unbinService的时候,也要用getApplicationContext(),不然在退出的时候会报service未被注册就解除的错误。
3,心跳连接功能,有一篇博客的代码,亲测可正常使用http://blog.csdn.net/zh724738989/article/details/42007099,若不可使用,加上
socket.setSoTimeout(13000);
具体原因尚不清楚,如果有知道的请告诉我一下,自己AS版本的Demo也已上传,可在资源页下载
最后
以上就是健壮糖豆为你收集整理的Android 心跳连接功能 bindService()无法启动Service的问题的全部内容,希望文章能够帮你解决Android 心跳连接功能 bindService()无法启动Service的问题所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复