我有一个后台闹钟,每分钟运行一次,使用这里发布的示例:
我的实际闹钟启动一个AsyncTask(因为我正在进行网络交易),它看起来像这样:
Socket sock = new Socket("hostname.com", 1234);
OutputStream out = sock.getOutputStream();
String data = "beth";
out.write(data.getBytes());
sock.close();
如果网络连接不稳定,最简单的方法是让它超时。我已经检查了手机是否连接到WiFi。
setSoTimeout看起来很像我想要使用的方法,但它似乎只适用于正在接收内容的套接字。如果连接失败,则希望在几秒钟后放弃连接。
回复第一条评论:
以前我运行的代码是:
new Checkin().execute();
我现在应该运行什么命令:
new Checkin().get(10000, TimeUnit.MILLISECONDS);
想在10秒后超时吗?这会在10秒后停止异步任务吗?