首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

fanfou(饭否) android客户端 代码学习二

2012-07-04 
fanfou(饭否) android客户端 代码学习2??FanfouWidget.class继续?代码学习1 ?因为重新编辑文章经常出现格

fanfou(饭否) android客户端 代码学习2

??FanfouWidget.class

继续?代码学习1 ?因为重新编辑文章经常出现格式错乱,所以以后先写在记事本里面了

fanfou(饭否) android客户端 代码学习二

继续上次的发送消息

public class ImageManager implements ImageCache {.....//取出图片//先将图片地址放入到List<>中,然后使用线程....}         private void startDownloadThread(String url) {if (url != null) {//将图片地址存放到list中addUrlToDownloadQueue(url);}// Start ThreadState state = mTask.getState();//使用已有的线程if (Thread.State.NEW == state) {mTask.start(); // first start} else if (Thread.State.TERMINATED == state) {//如果线程为终止状态,则启动新的线程mTask = new GetImageTask(); // restartmTask.start();}}...@Overridepublic void run() {try {//private volatile boolean mTaskTerminated = false; 当执行完run方法后在finally里面设置为true;while (!mTaskTerminated) {String url;//isPermanent默认为true ,提供了set方法,可以改变其值if (isPermanent) {//private BlockingQueue<String> mUrlList = new ArrayBlockingQueue<String>(50);//Queue接口与List、Set同一级别,都是继承了Collection接口。LinkedList实现了Queue接口。Queue接口窄化了对LinkedList的方法的访问权限(即在方法中的参数类型如果是//Queue时,就完全只能访问Queue接口所定义的方法了,而不能直接访问LinkedList的非Queue的方法),以使得只有恰当的方法才可以使用。BlockingQueue 继承了Queue接口。//队列是一种数据结构.它有两个基本操作:在队列尾部加人一个元素,和从队列头部移除一个元素就是说,队列以一种先进先出的方式管理数据,如果你试图向一个已经满了的//阻塞队列中添加一个元素或者是从一个空的阻塞队列中移除一个元索,将导致线程阻塞.在多线程进行合作时,阻塞队列是很有用的工具。工作者线程可以定期地把中间结果存//到阻塞队列中而其他工作者线线程把中间结果取出并在将来修改它们。队列会自动平衡负载。如果第一个线程集运行得比第二个慢,则第二个线程集在等待结果时就会阻塞。如//果第一个线程集运行得快,那么它将等待第二个线程集赶上来。//take 移除并返回队列头部的元素     如果队列为空,则阻塞url = mUrlList.take();} else {//poll 移除并返回队列头部的元素    如果队列为空,则返回nullurl = mUrlList.poll(TIMEOUT, TimeUnit.SECONDS); // waitingif (null == url) {break;} // no more, shutdown}// Bitmap bitmap = ImageCache.mDefaultBitmap;final Bitmap bitmap = mImageManager.safeGet(url);// use handler to process callbackfinal Message m = handler.obtainMessage(HANDLER_MESSAGE_ID);Bundle bundle = m.getData();bundle.putString(EXTRA_IMAGE_URL, url);bundle.putParcelable(EXTRA_BITMAP, bitmap);handler.sendMessage(m);}} catch

?

?参考文献

appwidget简单入门和学习笔记??

阻塞队列(BlockingQueue)

下一章:fanfou 如何定义httpException 取得图片部分

?

?

?

?

?

?

?

?

热点排行