`

关于异步加载数据的又一种实现

 
阅读更多
package com.testasyntextview;
/**
 * 把获取的线程写到方法中(比较好)
 */
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Context;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.text.Html;
import android.text.Spanned;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

public class TestAsynTextViewActivity extends Activity {
	private TextView textView1;
	private Button button1;
	private Context context;
	private ProgressDialog progressDialog;
	private Spanned html;

	/** Called when the activity is first created. */
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		context = this;
		textView1 = (TextView) findViewById(R.id.textView1);
		button1 = (Button) findViewById(R.id.button1);
		button1.setOnClickListener(l);

	}

	private OnClickListener l = new OnClickListener() {

		@Override
		public void onClick(View v) {

			progressDialog = ProgressDialog.show(context, "获取数据中", "等待");
			getHtmlDate();

		}
	};

	private void getHtmlDate() {// 获取数据,把线程写入了其中
		new Thread() {
			public void run() {
				Message msg = myHandler.obtainMessage();
				try {
					html = HttpUtil.fromHtml(HttpUtil
							.getHtml("http://wap.sina.com"));
					msg.what = 0;
				} catch (Exception e) {
					e.printStackTrace();
					msg.what = 1;
				}

				myHandler.sendMessage(msg);
			}
		}.start();
	}

	Handler myHandler = new Handler() {

		public void handleMessage(Message msg) {
			switch (msg.what) {
			case 0:
				textView1.setText(html);
				progressDialog.dismiss();
				break;
			case 1:
				textView1.setText("当前无数据");
				progressDialog.dismiss();
				break;
			}
			super.handleMessage(msg);
		}
	};

}

分享到:
评论

相关推荐

    Echarts:基础折线图(含异步加载数据)

    接下来,我们谈谈如何实现异步加载数据。在某些情况下,数据可能来自服务器,不能一次性定义在配置项中。ECharts支持动态加载数据,这通常通过Ajax或Fetch等HTTP请求实现。例如,我们可以使用jQuery的`$.getJSON`来...

    WPF中ItemsControl的异步加载

    // 假设这是一个异步加载数据的方法 Application.Current.Dispatcher.Invoke(() => { ItemsControl.ItemsSource = data; }); }); // 异步加载数据方法 private async Task<IEnumerable<Item>> LoadDataAsync() ...

    WPF异步加载DataGrid

    MVVM是一种流行的设计模式,它将用户界面(View)、业务逻辑(ViewModel)和数据模型(Model)分离开来,使代码更易于维护和测试。 首先,我们要理解什么是DataGrid。DataGrid是WPF中的一个控件,用于显示和编辑...

    appendData异步加载大数据量分片加载数据和增量渲染的解决方案

    "appendData异步加载大数据量分片加载数据和增量渲染的解决方案"是Echarts为优化性能提供的一种高效策略,尤其适用于展示百万级甚至千万级的数据集。本文将深入探讨这一高级进阶技巧。 首先,我们来理解"appendData...

    android异步加载服务器数据

    在Android开发中,异步加载服务器数据是一项至关重要的技术,特别是在构建新闻类应用时,它能让用户在不阻塞UI的情况下获取和展示实时更新的信息。本文将深入探讨如何实现这一功能,以及它与Android系统的关系。 ...

    ASP.NET中异步加载数据的无刷新Tab源代码

    在ASP.NET中实现异步加载数据,首先需要在页面上添加ScriptManager控件,它是ASP.NET AJAX的基础。然后,可以创建一个或多个UpdatePanel控件,这些UpdatePanel将包含需要异步更新的UI元素。当UpdatePanel内的某个...

    listview异步加载.rar

    在本压缩包文件"listview异步加载.rar"中,我们很可能会找到关于如何实现ListView异步加载的相关资料。 在Android中,ListView的异步加载通常涉及以下几个关键知识点: 1. **Adapter**:Adapter是连接ListView与...

    真无限自动滑动广告栏(异步加载数据)

    在Android开发中,"真无限自动滑动广告栏(异步加载数据)"是一个常见的需求,主要用于实现类似轮播图的效果,用户可以手动或自动滑动查看广告内容。这种功能通常采用ViewPager组件来实现,结合Adapter进行数据绑定...

    listview item 异步加载数据图片

    本教程将深入讲解如何在ListView中实现异步加载数据图片,提升应用性能。 首先,我们需要理解异步加载的基本概念。异步加载是指在不阻塞主线程的情况下,后台线程处理耗时任务(如网络请求、图片解码等),然后将...

    异步数据加载时,所用的等待组件,JS源码,类似于UI Block

    在描述中提到,这个组件是针对AJAX(Asynchronous JavaScript and XML)异步加载数据场景设计的。AJAX允许网页在不重新加载整个页面的情况下,与服务器交换数据并局部更新页面。当使用AJAX请求时,加载指示器会在...

    lazyload异步加载图片

    **懒加载(Lazy Load)异步加载图片技术详解*...懒加载异步加载图片是一种有效的优化策略,它提高了网页的加载速度,节省了用户的流量,提升了网页性能。合理地运用懒加载技术和工具,能为用户提供更加流畅的浏览体验。

    Android实现ListView异步加载图片

    在Android开发中,ListView是一种常用的组件,用于展示大量的数据列表。然而,当列表中的每一项都包含图片时,如果直接在主线程加载,会导致应用性能下降,甚至出现卡顿现象。为了解决这个问题,我们需要使用异步...

    图片异步加载,照片墙,异步加载listview图片2

    在Android应用开发中,图片异步加载是一种常见的优化技术,特别是在构建类似照片墙或ListView这样的大量图片展示场景中。这个话题主要关注如何有效地处理图片资源,避免UI阻塞,提高用户体验。以下是对"图片异步加载...

    Android中使用ListView数据异步加载与AsyncTask

    本篇将详细介绍Android中如何利用ListView和AsyncTask实现数据的异步加载。 一、ListView简介 ListView是一种可滚动的视图,可以显示一组项目列表。每个项目都由一个ListView的子视图(通常称为“项布局”)表示。...

    listview异步加载源码

    CursorLoader是一个异步加载数据的工具,它会在后台线程执行SQL查询,并通过ContentObserver监听数据变化。LoaderManager则负责管理Loader的生命周期,确保数据的正确加载和更新。 **5. RecyclerView与Adapter的...

    unity通过协程实现异步下载数据并加载

    协程是一种轻量级的线程,它不像传统的多线程那样需要频繁地上下文切换,而是由Unity引擎控制执行流程。协程可以暂停执行并在稍后恢复,这使得它非常适合用来处理异步操作,例如等待某个条件满足或定时执行任务。 *...

    异步加载和缓存

    异步加载是一种编程策略,它允许应用程序在执行其他任务的同时加载数据或资源。在iOS中,这通常通过GCD(Grand Central Dispatch)或者第三方库如Alamofire、SDWebImage等实现。当用户滚动UITableView时,我们并不...

    Android异步加载图片例子

    一种常见的异步图片加载库是Universal Image Loader (UIL),但现在更推荐使用Glide或Picasso。这些库都提供了简洁的API,能轻松实现图片的异步加载、缓存管理和内存优化。 以Glide为例,我们可以这样使用它来加载...

    jquery弹出div+异步加载数据

    本项目"jquery弹出div+异步加载数据"旨在实现一个功能丰富的用户界面,其中包含一个可拖动的弹出div,并能通过异步方式从服务器获取并显示数据。下面我们将详细探讨这个项目中的关键知识点。 首先,**jQuery弹出div...

    ObservableCollection异步加载扩展

    首先,我们可以创建一个扩展方法,如`AddRangeAsync`,该方法接受一个任务,用于异步加载数据。然后,我们可以在任务中使用`await Task.Run`将数据添加工作委托给后台线程,同时在每次添加数据后触发`...

Global site tag (gtag.js) - Google Analytics