4

AsyncTaskでhttpClientを実行していますが、その前に別のAsyncTaskを使用してデータを生成しているため、時間がかかる場合があります。httpClientを実行する前にデバイスがスリープ状態になった場合、どうなりますか?httpClientリクエストにwakeLockが必要ですか?

4

1 に答える 1

0

デバイスがスリープ状態になると、アクティビティonPause()が呼び出されます。バックグラウンド タスクを派手な方法でキャンセル/終了しないと、何も起こりません。AsyncTaskメインアプリケーションとは別のスレッドで実行されるため、それらを止めることはできません。これまで。

私はあなたの設計を理解できませんでした: 2 つの別々AsyncTaskの の目的は何ですか? HTTP 要求を満たすためにデータを収集するのに時間がかかる場合は、競合状態が発生しないように、単一の を使用AsyncTaskして内部ですべてを実行する必要があります。doInBackground()そうしないと、タスクをチェーンするか、最初のタスクで 2 番目のタスクを起動する必要があり、これは正しくないように思えます。

HTTP クライアントは単なるソケット ライブラリであり、神話上の獣ではありません :)

于 2012-12-26T19:05:14.697 に答える