私はAndroidクライアントでretrofit 2.xを使用しています。私の特別な状況では、500を超えるピクチャオブジェクト(実際にはファイル)を非同期にアップロードしたいと考えています。Android:Retrofit:多くの非同期要求を正しく行う方法
pictureListサイズは< 50である場合には、これらすべてのファイルをアップロードすることは問題ありません。
for (Picture pic : pictureList) {
uploadPictureAsync(pic)
しかし、サイズが100以上になったとき、私の試験装置は、次のエラーメッセージで中止されています
ラージ・オブジェクトの割り当てに失敗しました:ashmem_create_regionは「大 オブジェクト空間の割り当て」のため失敗しました:あまりにも多くのファイルを開く
これは、あまりにも多くの非同期要求が原因であるようです。
質問は次のとおりです。このような膨大なリクエストをどのように処理できますか?
これはわかりましたか?私は現在、似たようなことをしています。私は、各asynctaskのコールバックメソッドにasynctasksを作成する必要があると思うと思います。 – 8oh8
遅い応答には申し訳ありません。問題は、複数のAsyncTaskインスタンスで同時にすべての要求をプッシュしたことで、これはデバイスにはあまりにも多くのリクエストでした。それで、私はAsyncTaskの代わりにIntentServiceを変更して1つのファイルをアップロードしました - レスポンスを待つ - レスポンスが到着したら、次のファイルをアップロードしてください。だからそれはもはや並行していません。 – SilverJan