Netroid

使用Android下载文件,并在ProgressDialog中显示进度

这一生的挚爱 提交于 2019-12-13 17:10:43
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 我正在尝试编写一个易于更新的简单应用程序。 为此,我需要一个简单的函数,该函数可以下载文件并在 ProgressDialog 显示当前进度 。 我知道如何执行 ProgressDialog ,但是我不确定如何首先显示当前进度以及如何下载文件。 #1楼 是的,上面的代码可以工作。但是,如果您要在 Asynctask onProgressUpdate 中更新 progressbar ,然后按返回按钮或完成活动,则 AsyncTask 与UI失去联系。当您返回活动时,即使正在运行下载,后台,您将不会在进度栏上看到任何更新。 因此,在 OnResume() 尝试使用计时器任务运行类似 runOnUIThread 的线程,该计时器任务使用从 AsyncTask 运行后台更新的值来更新 progressbar 。 private void updateProgressBar(){ Runnable runnable = new updateProgress(); background = new Thread(runnable); background.start(); } public class updateProgress implements Runnable { public void run() { while

Netroid:强大、快速、易用、可扩展基于Volley实现的Android Http库

若如初见. 提交于 2019-12-04 03:17:34
简介: Netroid是一个基于 Volley 实现的Android Http库。提供异步执行网络请求、缓存返回结果、批量图片加载、大文件断点下载的常见Http交互功能。致力于避免每个项目重复开发基础Http功能,实现显著地缩短开发周期的愿景。 实现原理: Netroid自启动后创建由开发者指定的线程数目,每个线程由 BlockingQueue 进行阻塞。当有新的请求进入队列时,其中一个线程将被唤醒并获得请求对象, 然后开始执行,执行完成后线程重新回到阻塞状态,等待下一次唤醒。Netroid实现了强大的状态回调接口在请求执行过程中进行通知, 包括开始、完成、成功、重试、失败、取消、执行网络操作、应用缓存、下载进度九种状态回调,开发者可方便地获取请求的执行情况,对用户进行友好提醒。 使用方法 Netroid库的主入口是 RequestQueue ,通常情况下在Application.onCreate()方法中初始化,作为全局单例对象存放: Network network = new BasicNetwork(new HurlStack(Const.USER_AGENT, null), HTTP.UTF_8); // RequestQueue在创建时可指定使用HttpURLConnection还是HttpClient来执行请求,同时可指定硬盘缓存的目录位置及上限大小