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支持动态加载数据,这通常通过Ajax或Fetch等HTTP请求实现。例如,我们可以使用jQuery的`$.getJSON`来...
// 假设这是一个异步加载数据的方法 Application.Current.Dispatcher.Invoke(() => { ItemsControl.ItemsSource = data; }); }); // 异步加载数据方法 private async Task<IEnumerable<Item>> LoadDataAsync() ...
MVVM是一种流行的设计模式,它将用户界面(View)、业务逻辑(ViewModel)和数据模型(Model)分离开来,使代码更易于维护和测试。 首先,我们要理解什么是DataGrid。DataGrid是WPF中的一个控件,用于显示和编辑...
"appendData异步加载大数据量分片加载数据和增量渲染的解决方案"是Echarts为优化性能提供的一种高效策略,尤其适用于展示百万级甚至千万级的数据集。本文将深入探讨这一高级进阶技巧。 首先,我们来理解"appendData...
在Android开发中,异步加载服务器数据是一项至关重要的技术,特别是在构建新闻类应用时,它能让用户在不阻塞UI的情况下获取和展示实时更新的信息。本文将深入探讨如何实现这一功能,以及它与Android系统的关系。 ...
在ASP.NET中实现异步加载数据,首先需要在页面上添加ScriptManager控件,它是ASP.NET AJAX的基础。然后,可以创建一个或多个UpdatePanel控件,这些UpdatePanel将包含需要异步更新的UI元素。当UpdatePanel内的某个...
在本压缩包文件"listview异步加载.rar"中,我们很可能会找到关于如何实现ListView异步加载的相关资料。 在Android中,ListView的异步加载通常涉及以下几个关键知识点: 1. **Adapter**:Adapter是连接ListView与...
在Android开发中,"真无限自动滑动广告栏(异步加载数据)"是一个常见的需求,主要用于实现类似轮播图的效果,用户可以手动或自动滑动查看广告内容。这种功能通常采用ViewPager组件来实现,结合Adapter进行数据绑定...
本教程将深入讲解如何在ListView中实现异步加载数据图片,提升应用性能。 首先,我们需要理解异步加载的基本概念。异步加载是指在不阻塞主线程的情况下,后台线程处理耗时任务(如网络请求、图片解码等),然后将...
在描述中提到,这个组件是针对AJAX(Asynchronous JavaScript and XML)异步加载数据场景设计的。AJAX允许网页在不重新加载整个页面的情况下,与服务器交换数据并局部更新页面。当使用AJAX请求时,加载指示器会在...
**懒加载(Lazy Load)异步加载图片技术详解*...懒加载异步加载图片是一种有效的优化策略,它提高了网页的加载速度,节省了用户的流量,提升了网页性能。合理地运用懒加载技术和工具,能为用户提供更加流畅的浏览体验。
在Android开发中,ListView是一种常用的组件,用于展示大量的数据列表。然而,当列表中的每一项都包含图片时,如果直接在主线程加载,会导致应用性能下降,甚至出现卡顿现象。为了解决这个问题,我们需要使用异步...
在Android应用开发中,图片异步加载是一种常见的优化技术,特别是在构建类似照片墙或ListView这样的大量图片展示场景中。这个话题主要关注如何有效地处理图片资源,避免UI阻塞,提高用户体验。以下是对"图片异步加载...
本篇将详细介绍Android中如何利用ListView和AsyncTask实现数据的异步加载。 一、ListView简介 ListView是一种可滚动的视图,可以显示一组项目列表。每个项目都由一个ListView的子视图(通常称为“项布局”)表示。...
CursorLoader是一个异步加载数据的工具,它会在后台线程执行SQL查询,并通过ContentObserver监听数据变化。LoaderManager则负责管理Loader的生命周期,确保数据的正确加载和更新。 **5. RecyclerView与Adapter的...
协程是一种轻量级的线程,它不像传统的多线程那样需要频繁地上下文切换,而是由Unity引擎控制执行流程。协程可以暂停执行并在稍后恢复,这使得它非常适合用来处理异步操作,例如等待某个条件满足或定时执行任务。 *...
异步加载是一种编程策略,它允许应用程序在执行其他任务的同时加载数据或资源。在iOS中,这通常通过GCD(Grand Central Dispatch)或者第三方库如Alamofire、SDWebImage等实现。当用户滚动UITableView时,我们并不...
一种常见的异步图片加载库是Universal Image Loader (UIL),但现在更推荐使用Glide或Picasso。这些库都提供了简洁的API,能轻松实现图片的异步加载、缓存管理和内存优化。 以Glide为例,我们可以这样使用它来加载...
本项目"jquery弹出div+异步加载数据"旨在实现一个功能丰富的用户界面,其中包含一个可拖动的弹出div,并能通过异步方式从服务器获取并显示数据。下面我们将详细探讨这个项目中的关键知识点。 首先,**jQuery弹出div...
首先,我们可以创建一个扩展方法,如`AddRangeAsync`,该方法接受一个任务,用于异步加载数据。然后,我们可以在任务中使用`await Task.Run`将数据添加工作委托给后台线程,同时在每次添加数据后触发`...