Mal*_*asz 13 android loader asynctaskloader
我正在扩展AsyncTaskLoader,后来我通过LoaderManager在Fragment中使用它.是否有建议的方法来处理异步任务期间发生的错误?我想弹出消息,要求用户在发生互联网连接错误时取消或重试.
我现在能想到的唯一方法是让Loader在出错时返回null或将加载的对象包装到另一个具有状态代码的对象中.
pat*_*ckf 16
我们在上一个项目中做了什么:创建一个包含泛型的包装器和这样的excpetion:
public class AsyncTaskResult<T> {
private final T result;
private final Exception error;
//getter & setter
}
Run Code Online (Sandbox Code Playgroud)
捕获您的所有异常doInBackground(...)
并将它们打包到结果包装器中(如果没有错误,则将结果打包).在您的UI中检查包装器是否为异常,然后根据错误消息显示,否则使用结果填充字段.
对我们来说,定义哪些独特类型的异常也是一种很好的做法(例如,可恢复错误的异常只显示对话框或应用程序失败,您需要将用户踢到主菜单)并且只抛出这些异常kind(在捕获asynctask中的特定内容时),因此您不必为数百个不同的异常而烦恼,也抽象出错误处理.您还可以为String键提供正确的I18n错误消息,因此您只需要编写e.getMessage()
归档时间: |
|
查看次数: |
2359 次 |
最近记录: |