AsyncHttpResponseHandler を使用して、RESTful サービスからデータを収集しています。私が直面している問題は、onSuccess コールバックで必要な変数にアクセスできないことです。
私のコードは次のとおりです。
for (int i=0; i<=count; i++) {
requestItemsByCategory(context, categories.get(i), 10, new AsyncHttpResponseHandler() {
@Override
public void onSuccess(String response) {
loadItemsFromJsonString(context, response, categories.get(i));
}
});
}
コンテキストとカテゴリは、明らかに onSuccess では利用できません。これらのグローバル変数を作成することもできますが、問題はこれがループ内で呼び出されることです。そのため、onSuccess が数回呼び出され、どちらが最初に返されるかは保証されません。
私はJavaにかなり慣れていません。Objetive-C では、コード ブロック内の無名関数の外部にある変数にアクセスできます。それができない場合は、クエリをカスタマイズしてすべてのデータを一度に取得し、クライアント側で解析する必要があります。これはとにかくより良い解決策ですが、アクセスするかどうかを知りたいですコールバック内のアイテムは可能です。