3
我有一個後臺報警運行使用例如每分鐘張貼在這裏: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