Tengo una FragmentActivity con una ViewPager en ella - esta ViewPager contiene tres ListViews - cada una destinada a tener sus propios adaptadores únicos (y conjuntos de datos únicos).Multiple AsyncTaskLoader en una sola actividad: ¿tiene que inicializarse cada cargador en onCreate?
Me gustaría utilizar AsyncTaskLoader para rellenar estos adaptadores, pero SOLAMENTE cuando se selecciona una vista determinada en ViewPager.
¿Es necesario iniciar un cargador en el método onCreate de la actividad? (Por debajo de código)
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_foo);
getSupportLoaderManager().initLoader(0, null, this);
getSupportLoaderManager().initLoader(1, null, this);
getSupportLoaderManager().initLoader(2, null, this);
}
O ¿es correcto llamar a llamar initLoader (...) de forma interactiva, como el resultado de un oyente para OnPageChangeListener.onPageSelected?
mPager.setOnPageChangeListener(new OnPageChangeListener() {
@Override
public void onPageSelected(int newPage) {
getSupportLoaderManager().initLoader(newPage, null, this);
}
...
}
quiero evitar tener que realizar potencialmente 3 cargadores consumen tiempo por adelantado si el usuario puede solamente siempre mirar a la primera vista en el buscapersonas.
EDIT: ¿O sería un mejor diseño tener el ViewPager usar un Fragmento para cada vista, y cada fragmento sería responsable de administrar su propio cargador?
Finalmente utilicé ViewPager con subclases de ListFragment (cada uno con su propio cargador, que se inició desde onCreateView), pero aún me gustaría saber si lo anterior es una buena opción o solo un desastre esperando suceder. – NPike