
Android DownLoad
文章平均质量分 77
fyfcauc
这个作者很懒,什么都没留下…
展开
-
DownLoad模块 (二)
DownLoad模块 (二)FolderBrowser是一个相对独立的模块,其作用就是展示一个可以显示文件内容并且可以前进后退交互的对话框.结合其定位,决定使用Fragment来实现FolderBrowser, 直接使用dialogBuilder应该也可以,但是android guide中建议此类使用DialogFragment来实现。DialogFragment与Fragment原创 2015-02-27 11:43:57 · 546 阅读 · 0 评论 -
Download模块 (十九)
Download模块 (十七)AuthDialog extends DialogFragment, 有一个webview显示一个login网页,并且会监听login 成功/失败的event,并将event进一步扩散。对webview的监听是通过WebViewClient和WebChromeClient实现的:(1)WebViewClient: onPageStarted() o原创 2015-03-04 17:05:44 · 599 阅读 · 0 评论 -
Download模块 (十七)
Download模块 (十七)DownloadProxy是和DownloadService配对存在的,负责维护mainActivity和downloadService的通信交互。DownloadProxy不是一构造就立刻启动DownloadService,而是将启动Service放在一个init函数中,出于防止反复初始化,增加一个flag标记,如果当前还没有bind Downl原创 2015-03-03 18:33:30 · 1025 阅读 · 0 评论 -
Download模块 (十五)
Download模块 (十五)DownloadInfo实现了Parcelable,顾名思义,封装了一个Download的所有必要信息,信息足够使接收端构造出合乎发送端需求的DownloadTask。并且Info在接收端也会承载起M的角色,所有也会有一些setter来更新其信息。实现了Parcelable接口:(1)describeContents()直接返回0即可。原创 2015-03-03 15:05:48 · 567 阅读 · 0 评论 -
Download模块 (七)
Download模块 (七)FullscreenFragment类,基础类, 如同其名,是一个会占据APP整个UI的fragment,注意这里的Fullscreen和系统没有任何关系,并不是用了什么trick来隐藏系统的状态栏使得fragment占据整个屏幕,Fullscreen的意义只是对app本身来说的。在设计APP的整体layout时,用FrameLayout将所有的View原创 2015-02-28 10:44:12 · 448 阅读 · 0 评论 -
Download模块 (六)
Download模块 (六)DownloadManager是一个重M+轻C的角色。内部维护了所有Download的信息聚合,并围绕此信息聚合提供一些查询类的功能,也有一些C操作。DownloadManager 是一个单例模式的类,类载入时直接初始化一个sInstance.DownloadManager其实也可以完全设计为一个static类,不过从其语义和定位考虑,一个man原创 2015-02-27 22:18:45 · 550 阅读 · 0 评论 -
DownLoad模块 (四)
DownLoad模块 (四)DownloadConfirmDialogPagerAdapter是为ViewPager所使用的PageAdapter,直接extends自PagerAdapter并且也不符合FragmentPagerAdapter适用的场合, FragmentPagerAdapter以及FragmentStatePagerAdapter还没有使用过> 该类将I原创 2015-02-27 16:48:53 · 603 阅读 · 0 评论 -
Download模块 (三)
Download模块 (三)DownloadConfirmDialog是UI流程中最先呈现给用户的V,让用户选择download存储的位置,名称以及在普通下载与转存网盘之间做选择.这里采用了Fragment来作为实现手段,UI上的 存储方式的界面选择 采用了ViewPager实现。DownloadConfirmDialog类还implements了 OnClickLis原创 2015-02-27 14:53:24 · 680 阅读 · 0 评论 -
DownLoad模块 (一)
DownLoad模块 (一)DownLoad abstarct Class 实现了Comparable:这个类的定位基本就是该次DownLoad所有信息的聚合体,并且作为一个基类的角色存在,在抽象上就是一个DownLoad。虽然倾向于一个纯粹的数据结构,不过还是定义了一些行为.在MVC中的角色是 一个 重M+轻C并且其外部行为也就是发出一个事件,然后其他的Listene原创 2015-02-17 11:02:44 · 565 阅读 · 0 评论 -
UniversalImageLoader 源码笔记(1)
UniversalImageLoader:ImageDownloader接口:定义了getStream(…)接口, 这个抽象屏蔽了所有image来源以及如何提取的细节, 统一为一个返回InputStream的接口.以enum形式定义了支持的几种Scheme, 还集成了剥离url scheme的方法.BaseImageDownloader implements ImageDownloader:根原创 2015-08-25 12:19:08 · 484 阅读 · 0 评论 -
DownLoad模块 (五)
DownLoad模块 (五)DownloadItemView代表DownloadFragment上每一个Download对应的View,展示该Download的进度,状态,名称等信息。设计为base abstarct class。DownloadItemView直接extends LinearLayout, 又承担一部分的C,实现了onClickListener和 onLongCl原创 2015-02-27 17:49:54 · 647 阅读 · 0 评论 -
Download模块 (九)
Download模块 (九)DownloadsFragment类是负责展现当前Download信息的fragment, 按照需要extends FullscreenFragment,同样遵循惯例,实现了几个Listener 作为 C 的聚合. DownloadsFragment自身所展示的View比较简单,不过里面有一个container view, 该container vi原创 2015-02-28 14:57:57 · 650 阅读 · 0 评论 -
Download模块 (十六)
Download模块 (十六)Notification类算是一个比较独立的模块以及一个工具性的C+V角色比较好>。所有方法都是static的,类实际搞成一个static的都可以。或者单例模式。构造函数直接privateNotification内部没有实现什么listener,设计的时候不想让Nofticiation主动感知Download,而是应该作为一个被动的工具被调用。原创 2015-03-03 16:28:12 · 572 阅读 · 0 评论 -
Download模块 (十一)
Download模块 (十一)DownloadService,该service是为了实现APP切换到后台仍可以下载而实现的, 这也是Android所提倡的一种后台处理方式。该Service因为会和MainActivity这一端频繁交互,因此设计成为了bind的service.而同时在系统的Notification栏中也会有复数个不可撤销的Notification与此Servic原创 2015-03-01 19:39:42 · 953 阅读 · 0 评论 -
Download模块 (十三)
Download模块 (十三)DownloadTask类封装了一次下载任务的全部信息 以及 真正下载的实现DownloadTask接收DownloadInfo作为构造参数,并且内部维护一个指向其的引用,作为一个组成部件。DownloadTask有状态,使用enum类实现:NOT_START,IN_PROGRESS,PAUSED,FAILED,COMP原创 2015-03-02 16:57:04 · 749 阅读 · 0 评论 -
Download模块 (十二)
Download模块 (十二)LocalDownloadResourceProvider implements了 DownloadPageProvider.并且还封装了几乎所有create的view的逻辑交互.LocalDownloadResourceProvider还定义了几个要显示的View类。LocalDownloadResourceProvider把V部分也给承包了。原创 2015-03-02 11:53:28 · 685 阅读 · 0 评论 -
Download 项目总结
Download 项目总结.每一层的View只监听自己感兴趣的event,也基本只操作自己View内的直接子元素,当然不排除它进一步触发自己的View变化event,以及对自己内部的子view的操作。一个event的影响流可以是 (1)挨个遍历 要影响的 V/M ,这样做的好处 每个V/M的影响处理逻辑可以尽可能的封装在自己内部,不过这中方式一般是比较小范围,或者没有更原创 2015-03-05 15:17:28 · 529 阅读 · 0 评论 -
Download模块 (十八)
Download模块 (十七)RemoteDownload类继承自Download,反应一类比较特殊的Download,即将资源转存至网盘。这种情况下不会发生本地的IO交互。event的触发都是由网盘提供的API负责。网盘会为本次的转存任务分配一个ID,因此要增加一个Rid。不可以pauseequals 和 compareTo也会被override增加了一个原创 2015-03-04 15:35:18 · 664 阅读 · 0 评论 -
Download模块 (十四)
Download模块 (十四)DownloadThread extends thread, 承载了真正通过http下载数据的任务。Thread的一个问题是,其他thread对thread其实没有完全的控制权,interrupt方法只是改变一个flag,只有在Thread 的run的interrupt定义检测点才能实现对Thread的控制,这也注定了,基本不可能同步的控制一个th原创 2015-03-03 13:42:07 · 565 阅读 · 0 评论 -
Download模块 (十)
Download模块 (十)DownloadPagerAdapter是一个简单的基于PagerAdapter的类,定位很明确,就是为DownloadFragemnt中的ViewPage提供adapter。 因为将大量的逻辑外包给了View的provider,因此DownloadPagerAdapter本身的逻辑功能除了必须override的以外不多。DownloadPagerA原创 2015-02-28 15:30:09 · 484 阅读 · 0 评论 -
Download模块 (八)
Download模块 (八)KeyPressListener是一个体系,而不是一个单独的类,目的也很简单,就是一套传递keyPress信息的机制。这么做的原因是对于fragment这些非UI对象,是没有监听keyPress的功能的,而fragment虽然不是UI对象,但是UI对象的所有处理逻辑都在fragment中,因此fragment也需要能够感知keyPress。虽然当前原创 2015-02-28 11:39:07 · 538 阅读 · 0 评论 -
Download模块 (二十)
Download模块 (二十)RemoteDownloadProvider 和 之前的localDownloadProvider一样,实现了同样的接口,负责提供网盘转存模式下的UI提供与展示以及对交互逻辑的封装。和local一样,网盘当前已经转存的资源和正在转存的任务 都对应着一个内存中的Download对象下面主要列的是不同点。监听了大量的网盘转存相关event:原创 2015-03-04 22:35:58 · 599 阅读 · 0 评论 -
Android DownloadManager源码笔记
DownloadManger虽然也需要通过context的getSystemService来获得实例,但是其本身和ConnectivityManager之类的不太一样,其本身构造所需要的所有参数,均是当前Application可以独立提供的: new DownloadManager(ctx.getContentResolver(), ctx.getPackageName()),不需要通过Servi原创 2016-08-18 11:17:18 · 1314 阅读 · 0 评论