AsyncTaskでtimeoutを指定する方法
AsyncTaskを利用してAPIへリクエストする際にTimeOutを指定したい場合がある。そのやり方のメモ。
final SampleTask task = new SampleTask(); task.execute(); // TimeOut処理 new Thread(new Runnable() { @Override public void run() { try { // TimeOutに10秒を指定 // 10秒以内にTaskが終了しなければTimeoutExceptionを投げる task.get(10000, TimeUnit.MILLISECONDS); } catch (Exception e) { // Exceptionをキャッチしtaskをキャンセルする task.cancel(true); e.printStackTrace(); } } }).start();