У меня есть FragmentActivity с ViewPager в нем - этот ViewPager содержит три ListViews, каждый из которых должен иметь свои собственные уникальные адаптеры (и уникальные наборы данных).
Я хотел бы использовать AsyncTaskLoader для заполнения этих адаптеров, но ТОЛЬКО при выборе данного представления в ViewPager.
Требуется ли запускать загрузчик в методе действия onCreate? (код ниже)
@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);
}
Или это нормально вызывать вызов initLoader (...) в интерактивном режиме, например, в результате прослушивателя OnPageChangeListener.onPageSelected?
mPager.setOnPageChangeListener(new OnPageChangeListener() {
@Override
public void onPageSelected(int newPage) {
getSupportLoaderManager().initLoader(newPage, null, this);
}
...
}
Я хочу, чтобы вам не приходилось запускать потенциально 3-х часовые загрузчики сразу, если пользователь может только смотреть на первый вид в пейджере.
РЕДАКТИРОВАТЬ: Или было бы лучше, чтобы ViewPager использовал Фрагмент для каждого представления, и каждый фрагмент будет отвечать за управление своим собственным загрузчиком?