异步处理任务框架

来源:互联网 发布:淘宝的禅 编辑:程序博客网 时间:2024/05/20 09:24
异步处理任务框架:异步获取头像图片/** * * 第一个参数 就是图片下载路径的url * 第二个参数是 下载的进度  * 第三个参数就是异步任务执行完毕后的返回值 * @author Administrator * */public class LoadImageAsynTask extends AsyncTask<String, Void, Bitmap> {LoadImageAsynTaskCallback loadImageAsynTaskCallback;//要调用这个类,就必须实现其接口public LoadImageAsynTask(LoadImageAsynTaskCallback loadImageAsynTaskCallback) {this.loadImageAsynTaskCallback = loadImageAsynTaskCallback;}public interface LoadImageAsynTaskCallback{   public voidbeforeLoadImage();   public void afterLoadImage(Bitmap bitmap);}/** * 当异步任务执行之前调用 */@Overrideprotected void onPreExecute() {//初始化的操作具体怎么去实现, LoadImageAsynTask 不知道// 需要让调用这个 LoadImageAsynTask 的人 去实现 loadImageAsynTaskCallback.beforeLoadImage();super.onPreExecute();}/** * 异步任务执行之后调用 */@Overrideprotected void onPostExecute(Bitmap result) {loadImageAsynTaskCallback.afterLoadImage(result);super.onPostExecute(result);}/** * 后台子线程运行的异步任务  * String... params 可变长度的参数  */@Overrideprotected Bitmap doInBackground(String... params) {try {String path = params[0];URL url = new URL(path);HttpURLConnection conn =  (HttpURLConnection) url.openConnection();InputStream is = conn.getInputStream();return  BitmapFactory.decodeStream(is);} catch (Exception e) {e.printStackTrace();return null;}}}

0 0