我有一个后台报警运行使用例如每分钟张贴在这里:Android的 - 的AsyncTask插座写超时
我的实际警报启动一个的AsyncTask(因为我在做网络交易),这看起来像这样:
Socket sock = new Socket("hostname.com", 1234);
OutputStream out = sock.getOutputStream();
String data = "beth";
out.write(data.getBytes());
sock.close();
如果网络连接不稳定,最简单的方法是什么?我已经在检查手机是否连接到无线网络。
setSoTimeout看起来与我想要使用的类似,但它似乎只适用于正在接收内容的套接字。如果连接失败,我希望连接在几秒钟后放弃。
为响应第一个注释:
之前,我跑:
new Checkin().execute();
我现在运行:
new Checkin().get(10000, TimeUnit.MILLISECONDS);
10秒后超时?这会在10秒后停止异化。
这个问题可以帮助你: http://stackoverflow.com/questions/7882739/android-setting-a-timeout-for-an -asynctask – kmb64 2012-04-12 00:38:51
谢谢!请参阅我上面添加的代码 - 这是完成我想要的正确方法吗? – xur17 2012-04-12 00:53:32
我试过了上面发布的代码,而不是它根本没有执行asynctask - 我在这里误解了什么吗? – xur17 2012-04-12 01:00:18