Async Task から大量の http リクエスト (約 500) を作成する必要があります。その目的のために、私は HttpClient を使用しています。約200回のリクエストの後、LogCatでこれを取得します:
I/dalvikvm-heap(25912): 526096 バイトの割り当て用にヒープ (frag ケース) を 9.321MB に拡張します D/dalvikvm(25912): GC_CONCURRENT は 3K を解放し、1% は 9516K/9612K を解放し、3ms+1ms を一時停止し、合計 24ms
これが発生すると、非同期タスクが一時停止します (コードの実行が停止します)。私はあまりにも多くのメモリを使用していると仮定したので、これらの静的クラス変数を作成して、一度だけ割り当てられるようにしました。
static HttpClient httpClient = new DefaultHttpClient();
static HttpContext localContext = new BasicHttpContext();
static HttpGet httpGet = new HttpGet();
他のすべては、使用後に null に設定されています。また、マニフェスト「android:largeHeap="true"」で大きなヒープ要件を設定しようとしましたが、それでも同じ問題が発生します。
何が間違っているのかわかりません。500 の http リクエストの要件が非常に厳しいことはわかっていますが、解決策が必要です。何か案は?