Múltiples AsyncHttpClient obtener solicitudes para rellenar una actividad
Tengo una "GameActivity" y con el fin de rellenar el diseño tengo que hacer varias llamadas a una API remota y preguntando la mejor manera de lograr esto utilizando el paquete AsyncHttpClient http://loopj.com/android-async-http/ .
Mi configuración actual para una sola llamada de API:
- Android weightSum no funciona correctamente
- ¿Cómo puedo superponer una sombra en un ScrollView?
- Cómo deshabilitar el relleno en TextInputLayout?
- Spinner con elementos de varias líneas superpone la visualización de elementos seleccionados en Froyo
- Tamaño del mapa de bits de Android Widget
public class MainActivity extends Activity implements AdapterView.OnItemClickListener, SwipeRefreshLayout.OnRefreshListener{ ListView mainListView; JSONMainAdapter mJSONAdapter; SwipeRefreshLayout swipeLayout; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); swipeLayout = (SwipeRefreshLayout) findViewById(R.id.main_swipe_container); swipeLayout.setOnRefreshListener(this); swipeLayout.setColorScheme(android.R.color.holo_blue_bright, android.R.color.holo_green_light, android.R.color.holo_orange_light, android.R.color.holo_red_light); mainListView = (ListView) findViewById(R.id.main_listview); mainListView.setOnItemClickListener(this); mJSONAdapter = new JSONMainAdapter(this, getLayoutInflater()); mainListView.setAdapter(mJSONAdapter); getGameDetails(); }
Así que mi getGame Details será la primera llamada, pero luego tendré que hacer 4-6 más.
Mi getGameDetails:
private void getGames() { swipeLayout.setRefreshing(true); MyRestClient.get("games", null, new JsonHttpResponseHandler() { @Override public void onSuccess(JSONObject jsonObject) { swipeLayout.setRefreshing(false); Toast.makeText(getApplicationContext(), "Success!", Toast.LENGTH_LONG).show(); mJSONAdapter.updateData(jsonObject.optJSONArray("games")); } @Override public void onFailure(int statusCode, Throwable throwable, JSONObject error) { swipeLayout.setRefreshing(false); Toast.makeText(getApplicationContext(), "Error: " + statusCode + " " + throwable.getMessage(), Toast.LENGTH_LONG).show(); Log.e("ERROR", statusCode + " " + throwable.getMessage()); } }); }
Así que mis pensamientos son para agregar una función para cada llamada que necesito y sólo les llamo uno tras otro en mi onCreate así:
getGameDetails(); getGameCallA(); getGameCallB(); getGameCallC();
El otro método sería llamar a la función siguiente en el método onSuccess de AsyncHttpClient, pero eso no parece correcto.
Pregunta: ¿hay una "petición por lotes" con AsyncHttpClient que debo usar aquí?
Cualquier entrada apreciada, gracias.
- ¿Qué hace la clase LayoutInflater? (En Android)
- Horizontalmente en RecyclerView (con GridLayoutManager)
- Teclado suave de Android con botones superpuestos (Captura de pantalla)
- El pie de página sube cuando se muestra el teclado
- La etiqueta <item> requiere un atributo "drawable"
- RelativeLayout textviews superpuestas
- Las siguientes clases no se pudieron instanciar: - com.google.android.gms.plus.PlusOneButton
- Animación de desplazamiento personalizado (Inclinación, Card Deck, 3D, etc.)
No tengo manera de verificar que funcionará o no, pero supongo que hay una manera de ejecutar sus peticiones una tras otra
En su clase MyRestClient
:
private static AsyncHttpClient client = new AsyncHttpClient(); static { client.setThreadPool(Executors.newSingleThreadExecutor()); }
Después de que usted acaba de llamar:
getGameDetails(); getGameCallA(); getGameCallB(); getGameCallC();
- Cambiar el color ScrollBar / FastScroll de ListView?
- Mi anuncio de AdMob no está dibujando pero ¿está ahí? (LibGDX Admob 6.4.1)