1                          if(mtoast!=null)2                           {3                               mtoast.setText(progress);    4                           }5                           else6                           {7                               mtoast=Toast.makeText(getApplicationContext(),progress, Toast.LENGTH_SHORT);8                           } 9                           mtoast.show(); //显示toast信息

上述代码就完成了基本功能。

1、为什么会有这个问题?

我们知道如果用Toast.makeText(...)这种方式,那么生成的toast会进行排队,在上一个toast的有效时间没有结束前,不能够更新toast的内容。

那么问题来了,如果想用toast实现简单的,快速的消息提醒,上述排队的方式自然不能满足我们的需求

2、过程分析

我们首先定义一个Toast类型的mtoast并赋值为空。

那么在循环显示进度的方法中,我们引用最上边那段代码:

①如果mtoast为空,就实例化一个Toast变量,同时显示进度;

②在接下来每次进入显示进度的方法中,更改mtoast的显示文本,从而实现进度提醒的作用

3、代码片段赏析:

 1           HttpUtils http = new HttpUtils(); 2           for(int i=0;i<fontName.length;i++) 3           { 4               String path = pathPrefix+fontName[i]; 5               nowDownloadFontName = pathFonts+fontName[i]; 6               http.download(path, pathFonts+fontName[i],new RequestCallBack<File>() { 7  8                   @Override 9                   public void onStart() {10                       CommonUtils.LogWuwei(tag,"开始下载...");11                   }12 13                   @Override14                   public void onLoading(long total, long current, boolean isUploading) {15                           CommonUtils.LogWuwei(tag,"下载进度:"+((current*100)/total)+"%");16                           String progress = "加载字体中,已下载:"+((current*100)/total)+"%";17                            18                           if(mtoast!=null)19                           {20  mtoast.setText(progress);   21                           }22                           else23                           {24                               mtoast=Toast.makeText(getApplicationContext(),progress, Toast.LENGTH_SHORT);25  } 26                           mtoast.show(); //显示toast信息27                   }28 29                   @Override30                   public void onSuccess(ResponseInfo<File> responseInfo) {31                       CommonUtils.LogWuwei(tag,"下载成功,文件已经保存至:" + responseInfo.result.getPath());32                       33                       String progress = "下载成功,文件已经保存至:" + responseInfo.result.getPath();34                       if(mtoast!=null)35                         {36                             mtoast.setText(progress);    37                         }38                         else39                         {40                             mtoast=Toast.makeText(getApplicationContext(),progress, Toast.LENGTH_SHORT);41                             if(responseInfo.result.getPath().equals(pathFonts+"pianpina.ttf"))42                             {43                                     mtoast=Toast.makeText(getApplicationContext(),"初始化完毕,谢谢您的耐心等待", Toast.LENGTH_SHORT);44                             }45 46                         } 47                         mtoast.show(); //显示toast信息48                      49                         if(responseInfo.result.getPath().equals(pathFonts+"pianpina.ttf"))50                       {51                               judgeGoClientOrTv();52                       }53                   }54 55 56                   @Override57                   public void onFailure(HttpException error, String msg) {58                           CommonUtils.LogWuwei(tag,"下载失败:"+msg+error); 59                   }60           });61           }

4、有图有真相

ok,That's all

2015.3.7更新:

android Toast大全(五种情形)建立属于你自己的Toast

更多相关文章

  1. Android使用HttpURLConnection显示网络图片
  2. Android监听键盘显示和隐藏
  3. android日期控件显示
  4. android 上传/下载 图片
  5. android 利用Canvas显示局部图片
  6. Android总结笔记
  7. android 键盘关闭/显示
  8. Android使用URLConnection显示网络图片
  9. Android全屏显示

随机推荐

  1. Android中的Data Binding初探 (二)
  2. Android 屏幕适配详解
  3. Android顶部菜单栏,返回按钮、标题布局、
  4. android编译之解析main.mk
  5. 详解Android微信登录与分享
  6. Qt on Android Episode 6(翻译)
  7. 关于Android PopupWindow中实用Spinner控
  8. Android各版本系统源代码下载
  9. Android架构组件--App Startup学习笔记
  10. Android文件系统的结构及目录用途、操作