我想知道,当输入Activity或Fragment时,是第一次从网络加载数据,如果没有连接到Internet或加载失败,加载本地数据,目前我用的是第一次通过getLoaderManager()。InitLoader(0,null,this);在onLoadFinished方法中。然后,去网络更新数据,但是我有一个问题,因为onLoadFinished会被多次调用,所以很多次网络会请求更新数据,我不知道是不是我的流量问题,或者我做错了,有人可以给我一些帮助或建议吗?谢谢..
public void onLoadFinished(Loader<Cursor> cursorLoader, Cursor cursor) {
mAdapter.swapCursor(cursor);
fillDataFromNet();
}
答案 0 :(得分:1)
您可以将其与fillDataFromNet
一起调用,而不是在onLoadFinished
内调用initLoader
。加载程序很可能在网络完成之前完成。然后数据将传递给加载器,onLoadFinished
将再次触发。
fillDataFromNet();
getLoaderManager().initLoader(SOME_LOADER_ID, someArguments, this);