本人的思路是这样的,
APP启动立马按照默认的IP和端口来连接。
假如连接失败则跳转到更改IP和PORT的界面去。
APP启动立马按照默认的IP和端口来连接。
假如连接失败则跳转到更改IP和PORT的界面去。
mythread = new Thread() { public void run() { try { //先读取IP和端口 initdate(); //mytoast = Toast.makeText(MainActivity.this, "create socket", Toast.LENGTH_LONG); Log.i(Tag, "开始创建socket"); cSocket = new Socket(IP, PORT); //做事.. } catch (UnknownHostException e) { // TODO Auto-generated catch block Log.i(Tag, "99999999999999999999999"); e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block Log.i(Tag, "88888888888888888888888"); e.printStackTrace(); //连接失败的时候跳转去设置IP和PORT Intent intent = new Intent(); intent.setClass(MainActivity.this, SetIPandPORT.class); Log.i(Tag, "跳转至设置界面"); startActivity(intent); } } }
问题1,
现在发现,从这个“开始创建”出现到“跳转至设置界面“,中间的超时时间很长,这个怎么设置能让它检测到10S内没连上,就跳转设置?
问题2,
本人在设置IP和PORT的界面里,设置之后,这个IP和PORT能不能放到一个文件去保存下来,下次打开APP,就可以直接读取这个文件,获取IP和PORT,然后能直接连上服务端?问一下这个又是怎么做?
问题3,
设置完成之后,是应该重启APP还是怎样?原因是本人设置完了,回到主对话框,没办法再重启那个线程了。设置好的IP和PORT并不能立马生效。重启APP又怎么做?
新手,代码整了2天,这块还是没整明白。诚心求指导。
觉得这里回复比较麻烦的,也可以使用企鹅26981591
谢谢。
解决方案
80
这几个问题,可以看出你是个安卓新手,甚至是编程新手。
1. tcp连接导致阻塞,超时,要么异步,要么线程。你可以开线程专门负责连接。另开个工作线程等待连接成功或超时
cSocket = new Socket(IP, PORT); 导致阻塞,超时
1. tcp连接导致阻塞,超时,要么异步,要么线程。你可以开线程专门负责连接。另开个工作线程等待连接成功或超时
cSocket = new Socket(IP, PORT); 导致阻塞,超时
2. 涉及到文件存储,安卓有多种方案。
1、文件
2、SharedPreferences(偏好参数)
3、SQLite数据库
4、内容提供者(Content provider)
5、网络
你只保存ip port 可以使用简单的SharedPreferences 例子 http://blog.csdn.net/wulianghuan/article/details/8607628
3. 不必重启。只是要考虑你到底程序要干嘛就写。先设计好流程图。