如何正确停止loader?
How to stop loader correctly?
我使用扩展了 Loader
的 class。
得到结果后如何停止加载程序?
当我旋转 phone 我再次得到结果:
@Override
public void onLoadFinished(Loader<Data> loader, Data data) {
makeWorkWithData();
//... finish this loader? (or delete result)
}
使用这个:
@Override
public void onLoadFinished(Loader<Data> loader, Data data) {
makeWorkWithData();
stopLoader(id);
}
void stopLoader(int id) {
getLoaderManager().destroyLoader(id);
}
当需要再次请求时调用getLoaderManager().restartLoader()...
我对 Androids Loaders API 不满意,因为轮换会导致 Loaders 重新开始他们正在做的工作。这就是我使用和创建 Android Retainable Tasks 库的原因。它是轻量级的,基于 Android AsyncTask API 但具有自动轮换处理。您可能想检查一下并使用它代替 Loaders。
https://github.com/NeoTech-Software/Android-Retainable-Tasks
免责声明:我是 Android Retainable Tasks 的作者。
我使用扩展了 Loader
的 class。
得到结果后如何停止加载程序?
当我旋转 phone 我再次得到结果:
@Override
public void onLoadFinished(Loader<Data> loader, Data data) {
makeWorkWithData();
//... finish this loader? (or delete result)
}
使用这个:
@Override
public void onLoadFinished(Loader<Data> loader, Data data) {
makeWorkWithData();
stopLoader(id);
}
void stopLoader(int id) {
getLoaderManager().destroyLoader(id);
}
当需要再次请求时调用getLoaderManager().restartLoader()...
我对 Androids Loaders API 不满意,因为轮换会导致 Loaders 重新开始他们正在做的工作。这就是我使用和创建 Android Retainable Tasks 库的原因。它是轻量级的,基于 Android AsyncTask API 但具有自动轮换处理。您可能想检查一下并使用它代替 Loaders。
https://github.com/NeoTech-Software/Android-Retainable-Tasks
免责声明:我是 Android Retainable Tasks 的作者。