本人的思路是这样的,
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. 不必重启。只是要考虑你到底程序要干嘛就写。先设计好流程图。