私はサードパーティのAPIを呼び出し、いくつかのパラメータを渡し、結果としてJSONを取得するAsyncTaskを持っています。しかし、実行には時間がかかりすぎることがあります。私はこのAsyncTaskを30秒間だけ実行し、30秒以内に完了しない場合は、AsyncTaskを中止し、残りのコードの実行を続けます。これについていくつかの参考資料/例がありますか?AsyncTaskの実行時間を制限する簡単な方法は何ですか?
答えて
AsyncTask
が30秒以上実行される場合は、CountDownTimer
を停止するように設定できます。例については
:
new CountDownTimer(30000, 28000) {
public void onTick(long millisUntilFinished) {
}
public void onFinish() {
asyncTask.cancel(true); //
}
}.start();
もう一つの方法は、ハンドラです。
new Handler().postDelayed(new Runnable(){
@Override
public void run() {
asyncTask.cancel(true);
}
},30000)
もう一つの簡単な方法は、30秒にあなたのHTTP呼び出しの接続タイムアウトを設定することです。 30秒後に自動的に非同期タスクが終了します。
私はメイン/ UIスレッドでコード化できますか? – djac
もちろんできます。実際にはバックグラウンドで実行されます。カウントダウンタイマーの内部にUIコンポーネントを使用しないでください。 –
私の更新された回答を参照してください。また、内部にUIコンポーネントを使用する必要がある場合。ハンドラを使用することができます。 –
- 1. xgboost実行時間を制限する方法は?
- 2. CLI PHPスクリプトの実行時間を制限する方法
- 3. Pythonスクリプトの実行時間を計算する最も簡単な方法は?
- 4. アンドロイドでのネットワークアクティビティの実行時間を制限する方法は?
- 5. MacでSASをインストール/実行する最も簡単で簡単な方法は何ですか?
- 6. javascriptで関数の実行時間を制限する方法は?
- 7. Ruby/Rails/Passenger/Nginxで実行時間制限を設定する方法は?
- 8. 2つのファイル間でソートされたdiffを実行する簡単な方法は何ですか?
- 9. Apacheのホストでダウンロード速度を制限する簡単な方法は何ですか?
- 10. HttpClient要求を制限する簡単な方法
- 11. タイマーを行う簡単な方法は何ですか?
- 12. 範囲内でフロート角度を制限する簡単な方法は何ですか?
- 13. ファブリック実行の出力を抑制する簡単な方法は?
- 14. Googleスプレッドシートスクリプトの実行時間制限
- 15. didReceiveNotificationRequest:withContentHandler - 実行時間の制限?
- 16. アクターメソッドの実行時間には制限がありますか?
- 17. PHP実行時間制限で失敗することのないPHPスクリプトの実行方法
- 18. Windows Media Playerを一時停止/再生する最も簡単で簡単な方法は何ですか?
- 19. 制限されたリソースでMongoをスケールする最も簡単な方法は?
- 20. RailsでERBを実装する最も簡単な方法は何ですか?
- 21. 実行時間はかかりますが、検証は簡単ですか?
- 22. 現在のGMT時間をUnixタイムスタンプ形式で取得する最も簡単な方法は何ですか?
- 23. MvxDialogFragmentを表示する簡単な方法は何ですか?
- 24. jsonifierへのアクセスを制限する最も簡単な方法は?
- 25. 簡単なSpotifyアプリケーションの実行方法
- 26. RemoteWebDriver Javaスクリプトを実行する時間は無制限ですか?
- 27. 実行時間を制限するJavaのスレッドのサンプル
- 28. Apacheのスパークジョブの実行時間を制限する
- 29. スクリプトを実行する権限を制限する方法は?
- 30. Apache + PHPのようなWebサーバーからGroovyを実行する最も簡単な方法は何ですか?
[このSOの答え](https://stackoverflow.com/a/31601166/5392118) –