`
wander754085
  • 浏览: 51960 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

Android进度条 多线程登录或下载

阅读更多

在Android中一个常见的、经常会遇到的需求是:用户的行为(如登录或下载图片)触发了到服务器端的数据请求,而这一过程较慢,为了达到较好的用户体验,需要在用户界面上显示一个等待的进度条或对话框,网上有很多种实现方法,我比较推荐使用handler的方式进行多线程处理。

首先在Activity中声明点击按钮时的动作,即:弹出对话框,并打开下载线程

 button.setOnClickListener(new View.OnClickListener() {
   @Override
   public void onClick(View v) {
    progressDialog = new ProgressDialog(MyActivity.this);
    progressDialog.setMessage("正在向服务器提交请求");
    progressDialog.setTitle("请稍候");
    progressDialog.show();
    Log.v(TAG, address.getText().toString());
    Runnable r = new ConnectThread(handler);
    th = new Thread(r);
    th.start();
   }
  });

同时在Activity中还需要定义Handler并把它的句柄传递到下载线程中,用来传递消息,即下载完成后采取什么样的动作,例如打开一个新的Activity:

handler = new Handler() {
			@Override
			public void handleMessage(Message msg) {
                                ........................
                               progressDialog.dismiss();  //进度条消失
				Log.v(TAG, "连接成功");
				startActivity(intent);
			}
		};

在ConnectThread中就可以干原本要干的事了,即下载或是登录,处理完之后在线程结束之前使用之前传递的handler句柄发送一个空消息即可:

 

public void run() {      
 ..................
 handler.sendEmptyMessage(0);
}

 

个人觉得使用这种方式代码结构较清晰,应用效果较好微笑


分享到:
评论

相关推荐

    多线程下载+进度条

    在IT领域,多线程下载和进度条显示是提高用户体验和优化下载效率的重要技术。这里我们将深入探讨这两个概念以及如何实现它们。 首先,多线程下载是指在一个下载任务中使用多个独立的线程同时从服务器获取数据。这种...

    android多线程下载带进度条

    1.给进度调设置最大值 2.无论哪一个线程下载都要记录进度条当前位置,并设置值 3.给textview设置显示当前下载值 4.创建临时文件把以前下载好的位置记录起来 5.当线程下载完后删除临时保存进度条位置的文件

    Android 多线程下载+UI进度条刷新

    在Android开发中,多线程下载以及UI进度条的实时刷新是常见的需求,尤其是在处理大文件下载时。本文将深入探讨如何实现这个功能,并参考了链接`http://blog.csdn.net/sky286753213/article/details/11770299`中的...

    Android 多线程下载进度条src 支持android 1.6以上

    在Android开发中,多线程下载进度条是一个常见的需求,特别是在处理大文件或者网络环境不稳定时,能够实时显示下载进度可以提升用户体验。本项目“Android 多线程下载进度条src 支持android 1.6以上”提供了一个示例...

    Android多线程分段下载源码

    在Android开发中,多线程分段下载是一项重要的技术,特别是在处理大文件或者网络环境不稳定的情况下,能够提高下载效率并优化用户体验。这个"Android多线程分段下载源码"实例是一个很好的学习资源,它实现了文件的...

    Android 多文件下载进度条

    在Android开发中,实现多文件下载并展示...综上所述,实现Android多文件下载并显示进度条涉及了网络请求、多线程、文件IO、数据持久化、UI更新、错误处理等多个技术点。合理的设计和实现可以提供流畅且可靠的下载体验。

    Android多线程下载实现方案

    本篇文章将详细探讨如何在Android中实现多线程下载功能,并涉及断点续传技术,以确保下载的高效性和可靠性。我们还将提及提供的`demo.apk`,这是一个实际的演示应用,可供开发者直接安装体验。 ### 一、多线程下载...

    Android-Android仿应用宝下载进度条

    在Android开发中,创建一个与应用宝类似的下载进度条是一个常见的需求,这涉及到自定义View、多线程处理以及UI更新等技术。本项目"Android-Android仿应用宝下载进度条"旨在实现一个类似应用宝App中的下载进度条效果...

    android studio多线程下载

    在Android开发中,多线程下载是一项常见的技术,特别是在处理大文件或网络资源时,为了提高下载速度和用户体验,开发者通常会采用多线程来分块下载数据。Android Studio作为官方推荐的Android集成开发环境,提供了...

    Android 多线程断点续传下载

    在多线程下载中,工作线程负责实际的下载任务,而主线程则更新UI,显示下载进度。因此,需要通过`Handler`将下载进度信息发送到主线程,以便实时更新进度条。 在**错误处理**方面,需要考虑网络中断、服务器响应...

    Android 进度条对话框Demo.zip

    在Android开发中,进度条对话框(ProgressDialog)是用户界面中的一个重要组件,它通常用于向用户展示一个操作的进度或等待状态。这个"Android 进度条对话框Demo.zip"包含了一个示例项目,用于演示如何在Android应用...

    安卓进度条loadingprogress相关-多线程下载炫彩进度条.rar

    本项目“安卓进度条loadingprogress相关-多线程下载炫彩进度条.rar”显然关注的是如何在Android应用中实现一种动态、多彩的进度条来显示多线程下载的状态。 首先,我们要理解进度条的基本概念。在Android中,有两种...

    android 多线程断点下载及进度实时更新demo

    Android中,我们可以使用`AsyncTask`、`IntentService`或自定义线程池来实现多线程下载。 **断点续传**: 断点续传是在网络不稳定或者设备意外关闭后,可以从上次停止的地方继续下载,避免了重新开始下载的困扰。在...

    android 多任务下载,并在下载管理界面刷新进度条

    综上所述,实现“android 多任务下载,并在下载管理界面刷新进度条”涉及多方面的技术,包括多线程、网络请求、UI更新、文件存储和错误处理等。合理设计和实现这些组件,能为用户提供流畅、高效的下载体验。

    文件复制及进度条 android 文件复制 进度条 progressdialog

    在Android开发中,文件复制和进度条的显示是常见的需求,尤其在移动应用中,用户可能需要将数据从一个位置移动到另一个位置,或者在后台下载文件时展示进度。`ProgressDialog`是Android SDK提供的一种对话框组件,...

    Android多线程下载

    在Android开发中,多线程下载是一项常见的技术,它能够显著提高大文件的下载速度,尤其是在网络环境不稳定或者带宽有限的情况下。多线程下载的基本原理是将一个大文件分割成多个小部分,然后通过多个并发的网络连接...

    多线程断点续传带进度条

    在Android开发中,实现“多线程断点续传带进度条”的功能是一项技术挑战,它涉及到网络编程、文件操作、多线程并发控制以及UI更新等多个方面。下面将详细阐述这一技术点的关键知识点。 首先,多线程是实现断点续传...

    android下载文件进度条时时更新

    Android中的异步任务类(AsyncTask)用于在后台线程执行耗时操作,例如文件下载,同时在主线程更新UI,如进度条。创建一个继承自AsyncTask的类,其中`doInBackground()`方法负责下载操作,`onProgressUpdate()`更新...

    android 多线程 下载 更新 ui 例子

    总的来说,这个例子是一个很好的实践,可以帮助开发者了解如何在Android中实现多线程下载,以及如何同步更新UI来反映下载状态。通过学习这个例子,开发者可以掌握到处理并发和UI更新的关键技术,这对于任何Android...

    Android 多线程下载 仿下载助手

    在Android开发中,多线程下载是一项常见的任务,特别是在处理大文件时,为了提升用户体验,通常会采用多线程技术来加速下载过程。本项目"Android 多线程下载 仿下载助手"就是针对这一需求设计的一个示例,旨在模仿...

Global site tag (gtag.js) - Google Analytics