Проблема, с которой я столкнулся здесь, была связана с моим пейджером на основной активности.
Поскольку AsyncTask создавал курсор для PagerAdapter, я не устанавливал адаптер, пока он не закончил. Существует известная проблема с ViewPager и активностью onPause, когда адаптер не был установлен (см. здесь ).
Чтобы преодолеть это, я изменил свой адаптер, чтобы он возвращал 0, когда для адаптера нет курсора:
public int getCount() {
// return the size of the cursor if it has been instantiated;
return (mCursor !=null) ? mCursor.getCount() : 0 ;
}
и добавил метод setCurrentCursor к адаптеру. Таким образом, я смог настроить адаптер и связать его с viewpager в onCreate, а затем добавить курсор на адаптер, когда он стал доступен из ASyncTask;
public void setCurrentCursor(Cursor cu){
this.mCursor = cu;
this.notifyDataSetChanged();
}
Теперь все, что мне нужно сделать, - это вызвать adapter.setCurrentCursor в методе onPostExecute объекта ASyncTask, передающего созданный курсор.
Надеюсь, это поможет.
Спасибо,
м