Android的主线程中执行长时间操作,导致界面无响应,会引起ANR。如果需要执行较长时间的操作,一般会在另一个线程处理,然后将数据转交给主线程进行显示,Android本身为我们提供了一些机制处理这种情况,今天就来看看Loader。Loader主要用来在Activity和Fragment中异步加载数据,使用也非常简单。
Loader的初始化非常简单,Activity提供了获取LoaderManager的接口,之后调用LoaderManager的initLoader即可。initLoader接受三个参数:
Loader的唯一标识符ID,用来区分多个Loader;
传递给Loader的参数,可选;
Loader的回调。
销毁Loader,只需要使用LoaderManager的destoryLoader即可,参数只传递一个Loader的ID。
Loader的回调接口LoaderCallbacks有三个方法:
public interface LoaderCallbacks{ Loader onCreateLoader(int var1, Bundle var2); void onLoadFinished(Loader var1, D var2); void onLoaderReset(Loader var1); }