ECClient红孩子android客户端源码分析之图片加载自动刷新listview
来源:互联网 发布:炒股的智慧 知乎 编辑:程序博客网 时间:2024/04/28 19:45
再看ECClient红孩子android客户端源码, 看到了LimitbuyAdapter.java, 部分源码如下:
public class LimitbuyAdapter extends ImageAsyncLoaderAdpter<Limitbuy> { private static final String TAG = "LimitbuyAdapter"; private List<Limitbuy> list; private Context context; private Drawable[] drawables; private boolean isPlay; private Runnable runnable = new Runnable() { @Override public void run() { if (!isPlay) return ; handler.postDelayed(this, 1000); notifyDataSetChanged(); } }; private Handler handler = new Handler(); private SimpleDateFormat simpleDateFormat; public LimitbuyAdapter(List<Limitbuy> list, ListView listView, Context context) { super(context, listView, list); this.list = list; this.context = context; drawables = new Drawable[list.size()]; simpleDateFormat = new SimpleDateFormat("dd 天 HH:mm:ss"); } public void start() { isPlay = true; runnable.run(); }
我们看到这句代码.
handler.postDelayed(this, 1000);
我问了下度娘, 有写道下面内容的博客, 放在这里供大家学下下:
Android之Handler的postDelayed()方法的用法
这是一种可以创建多线程消息的函数
使用方法:
1,首先创建一个Handler对象
Handler handler=new Handler();
2,然后创建一个Runnable对象
Runnable runnable=new Runnable(){
@Override
public void run() {
// TODO Auto-generated method stub
//要做的事情,这里再次调用此Runnable对象,以实现每两秒实现一次的定时器操作
handler.postDelayed(this, 2000);
}
};
3,使用PostDelayed方法,两秒后调用此Runnable对象
handler.postDelayed(runnable, 2000);
实际上也就实现了一个2s的一个定时器
4,如果想要关闭此定时器,可以这样操作
handler.removeCallbacks(runnable);
当然,你也可以做一个闹钟提醒延时的函数试试,比如,先用MediaPlayer播放闹钟声音,
如果不想起,被停止播放之后,下次就5分钟后再播放,再被停止的话,下次就4分钟后播放,
………………
只要更改延时的时间就可以实现了,用一个static对象的话会比较容易操作。
是可以异步效果,但Runnable的执行是在Handler对象所在的线程
如果其所在的线程是UI线程的话,Runnable中还是不能执行耗时操作,不然会ANR
那么, LimitbuyAdapter.java中的handler.postDelayed(this, 1000);
notifyDataSetChanged();就是一个间隔1s的定时器, 每秒钟发一次数据变化通知给listview, 实现listview的自动刷新, 那么在耗时的图片显示任务中, 我们只需要开启这个定时器就可以了, 而不需要关心图片合适加载完毕刷新界面了. 是不是很省心?
先写这些, 希望对大家有帮助.
- ECClient红孩子android客户端源码分析之图片加载自动刷新listview
- ECClient 红孩子android客户端listview图片加载(优化)核心代码分析
- Android之实现ListView的“下拉刷新”、“上拉加载”、“自动加载”功能(一)
- Android之实现ListView的“下拉刷新”、“上拉加载”、“自动加载”功能(二)
- 【Android】ListView刷新、加载
- Android源码分析之ListView
- Android之ListView下拉刷新和上拉加载实现详解(含源码Demo)
- Android之图片加载库Picasso源码分析
- android Listview分批加载+自动加载(附源码下载)
- Android开发之ListView异步加载图片
- android开发之定制ListView(加载图片)
- Android之ListView图片加载错位问题解决
- 超级ListView,包括下拉刷新,自动翻页加载数据,异步下载、加载图片缓存等
- wemall app商城源码Android之ListView异步加载网络图片(优化缓存机制)
- android之ListView上拉加载更多和下拉刷新
- Android之ListView(一)异步加载图片错位、重复、闪烁问题分析及解决方案
- Android listview图片刷新闪烁
- Android部分开源项目源码分析之--ListView 图片顶部模糊的高斯处理
- GUI图形用户界面
- 感悟、资产和幸福感
- 如何理解: java的import ???
- 深入浅出JMS(一)--JMS基本概念
- iOS and OS X Network Programming Cookbook |Creating an echo server(BSD)
- ECClient红孩子android客户端源码分析之图片加载自动刷新listview
- JS中innerHTML、outerHTML、innerText、outerText的区别
- 软件包javax.servlet不存在的解决办法
- 微博舆情 之 特定话题情感分析
- 解除Intellij Idea中的热键冲突
- debian命令行安装sqlite3
- java自带的MD5加密 以及jsMD5加密
- 网络编程
- 全局变量和全局静态变量的区别