`

Android学习之异步处理

阅读更多

main.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 
	xmlns:android="http://schemas.android.com/apk/res/android"
	android:orientation="vertical" 
	android:layout_width="fill_parent"
	android:layout_height="fill_parent">
	<ProgressBar
		android:id="@+id/bar" 
		android:layout_width="fill_parent"
		android:layout_height="wrap_content"
		style="?android:attr/progressBarStyleHorizontal" />
	<TextView
		android:id="@+id/info"
		android:layout_width="fill_parent"
		android:layout_height="wrap_content" />
</LinearLayout>

 

 

 

MyAsyncTaskDemo.java:

import android.app.Activity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.widget.ProgressBar;
import android.widget.TextView;

public class MyAsyncTaskDemo extends Activity {
	private ProgressBar bar = null;								// 进度条组件
	private TextView info = null;								// 文本显示组件

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		super.setContentView(R.layout.main);					// 调用布局管理器
		this.bar = (ProgressBar) super.findViewById(R.id.bar);	// 取得组件
		this.info = (TextView) super.findViewById(R.id.info);	// 取得组件
		ChildUpdate child = new ChildUpdate() ;					// 子任务对象
		child.execute(100) ; 									// 为休眠时间
	}
	private class ChildUpdate extends AsyncTask<Integer, Integer, String> {
		@Override
		protected void onPostExecute(String result) {			// 任务执行完后执行
			MyAsyncTaskDemo.this.info.setText(result) ;			// 设置文本
		}
		@Override
		protected void onProgressUpdate(Integer... progress) {	// 每次更新之后的数值
			MyAsyncTaskDemo.this.info.setText("当前进度是:"
					+ String.valueOf(progress[0]));				// 更新文本信息
		}
		@Override
		protected String doInBackground(Integer... params) {	// 处理后台任务
			for (int x = 0; x < 100; x++) {						// 进度条累加
				MyAsyncTaskDemo.this.bar.setProgress(x);		// 设置进度
				this.publishProgress(x);						// 传递每次更新的内容
				try {
					Thread.sleep(params[0]);					// 延缓执行
				} catch (InterruptedException e) {
					e.printStackTrace();
				}
			}
			return "执行完毕。";									// 返回执行结果
		}
	}

}

 

分享到:
评论

相关推荐

    Android异步加载文字

    总之,“Android异步加载文字”项目涵盖了Android应用开发中的基本异步处理技巧,通过学习和实践,开发者可以掌握如何在后台加载数据并安全地更新UI,提高应用的性能和用户体验。同时,这也是Android应用开发进阶...

    android demo,Runnable异步线程的处理

    在Android开发中,异步线程的处理是至关重要的,特别是在UI交互中,为了保证用户界面的流畅性,我们通常需要将耗时操作...对于初学者来说,这是一个很好的学习资源,能够帮助他们掌握Android中处理异步任务的关键技能。

    Android异步加载的学习demo

    在Android开发中,异步加载是一项至关重要的技术,特别是在处理图像资源时,因为它们往往较大,直接在主线程中加载可能导致应用卡顿甚至崩溃。这个"Android异步加载的学习demo"旨在帮助开发者理解和掌握如何在...

    Android使用GridView异步加载(弱引用)网络图片(支持点击查看)Demo

    在本Demo中,最常使用的工具是`AsyncTask`或`Handler`,它们都是Android提供的异步处理机制。`AsyncTask`适用于简单的后台任务,它可以方便地在后台执行任务并在UI线程更新结果。`Handler`配合`Looper`则能创建一个...

    android 异步显示View

    AsyncTask是一种轻量级的异步处理类,适用于执行一次性任务,如网络请求或数据库操作。它包含三个泛型参数,分别代表后台任务的输入类型、进度类型和输出类型。通过`doInBackground()`方法执行后台任务,然后在`...

    android异步任务框架源码

    为了避免这个问题,可以将AsyncTask与Activity的生命周期绑定,或者使用其他更高级的异步处理机制,如IntentService、LiveData或Coroutines。 现在,让我们转向源码分析。在源码中,你会看到AsyncTask类是如何维护...

    Android例子源码异步批量下载图片并缓存

    在Android开发中,异步批量下载图片并缓存是一个常见的需求,特别是在开发涉及大量图片展示的应用时,如社交应用、电商应用等。本教程将基于提供的Android例子源码,深入探讨如何实现这一功能。 首先,我们需要理解...

    Android异步请求网络图片demo

    通过学习和实践这个"Android异步请求网络图片demo",开发者可以掌握如何在Android应用中实现高效、流畅的网络图片加载,同时理解异步处理、内存管理、网络请求库等关键概念,这对于构建高质量的Android应用至关重要...

    android异步下载图片

    异步编程是Android中处理网络请求的关键,它可以防止应用程序因执行长时间运行的任务而阻塞主线程,从而避免出现ANR(应用无响应)错误。Android提供了多种异步编程模型,如AsyncTask、Handler/Looper、...

    android与服务器实现http异步通信

    总之,Android与服务器的HTTP异步通信涉及到客户端的网络请求、数据解析、UI更新,以及服务器端的API设计、业务逻辑处理等多个方面。通过学习和实践,开发者可以掌握这一核心技能,从而构建功能丰富的移动应用。

    android http同步与异步通讯包

    这个"android http同步与异步通讯包"提供的源码应该包含了上述两种方式的实现,便于开发者对比学习和选择适合的通信方式。使用时,根据实际需求,可以对请求参数、超时时间、重试机制、错误处理等方面进行定制。 在...

    Android异步下载网络图片Viewpager实现广告幻灯片

    在Android开发中,实现高效的用户体验往往需要处理好网络图片的加载和显示,特别是在涉及到大量图片展示,如广告轮播、图片画廊等场景时。在这个案例中,我们关注的是如何利用`Android`的`ViewPager`组件和异步加载...

    android Gridview 异步加载网络图片

    综上所述,"android Gridview 异步加载网络图片"是一个涉及Android UI设计、多线程编程、图片处理、缓存策略以及第三方库使用的综合主题。通过学习这个示例,开发者可以提升应用性能,提供更优质的用户体验。

    Android用AsyncTask异步加载图片(新)

    在Android应用开发中,异步加载图片是一项常见的需求,特别是在处理大数据量的图像时,如在GridView或ListView中展示图片。`AsyncTask`是Android提供的一种轻量级的多线程解决方案,它允许开发者在后台执行耗时操作...

    Android异步任务完整实例

    在Android开发中,异步任务(AsyncTask)是一种常见的处理耗时操作的方式,它允许开发者在后台线程中执行任务,同时保持与UI线程的交互。本实例提供了完整的AsyncTask实现,对于初学者和进阶开发者来说,都是一个极...

    Android studio中图片异步加载并缓存Android-Universal-Image-Loader

    通过导入提供的工程文件,你可以直接运行app,查看和学习异步加载和缓存的实现细节。 总的来说,Android-Universal-Image-Loader是Android开发中不可或缺的工具之一,它提供了一套完整的解决方案来处理图片加载问题...

    android异步加载图片

    2. **Loader框架**:Android的Loader框架是另一种处理异步数据加载的方式,它能监听数据源变化并自动更新UI。`CursorLoader`常用于加载数据库数据,但也可以自定义Loader来加载图片。 3. **图片库选择**:在Android...

    Android图片异步加载-ListView、GridView、ViewPager

    ListView是Android中常用的列表控件,当其中的ImageView数量过多时,如果不进行异步处理,滚动时会频繁加载图片,导致界面卡顿。使用UIL,我们可以在getView()方法中调用DisplayImageOptions和ImageLoader实例,为每...

    Android应用源码之android端用于异步加载图片

    通过这个源码实例,开发者可以深入理解Android图片异步加载的原理和实践,学习如何结合内存缓存、文件缓存以及动画效果来提升应用的性能和用户体验。这不仅是Android开发的基础知识,也是提升应用质量的关键技能。

    android异步请求

    Android提供了一个内置的异步任务类`AsyncTask`,用于在后台线程执行耗时操作,然后在UI线程更新结果。`AsyncTask`包含三个泛型参数:`Params, Progress, Result`,分别对应于后台任务的输入参数、进度更新和最终...

Global site tag (gtag.js) - Google Analytics