use*_*701 12 android android-loadermanager
我正在使用Fragments和LoaderManager.我必须启动未知数量的任务,它们可能并行运行(否则我只重用一个且只有一个加载器).例如,我有一个listview,每行可能有一个按钮,用于将该行的内容保存到Web服务器.用户可以并行地对多个项目发起保存请求.
private int nextId = 0;
private void onClickListener() {
Bundle bundle = new Bundle();
bundle.putNextData(...);
getLoaderManager().initLoader(nextId++, bundle, this);
}
Run Code Online (Sandbox Code Playgroud)
我自己可以尝试簿记,所以手动创建一个加载器池并在可能的情况下重用它们,看起来它可能已经由API实现了?
谢谢
我认为您不应该使用加载程序将数据保存到远程服务器。
相反,使用IntentService或类似的东西来处理“保存”操作队列。这样,您与 Web 服务器的通信可以批量、折叠(即单个项目的多个排队保存可以折叠为一个操作),并且如果需要,将在您的活动的生命周期之外持续存在。
由(或等效)处理的保存队列IntentService也是使用退避重试失败操作的好方法,因为您可以使用指数退避来实现延迟重试AlarmManager。
| 归档时间: |
|
| 查看次数: |
1820 次 |
| 最近记录: |