- 浏览: 154178 次
- 性别:
- 来自: 五指山
文章分类
最新评论
-
dengdonglin888:
qq_30221445 写道你好 请问这种数据能解吗 < ...
Simple XML -
qq_30221445:
你好 请问这种数据能解吗 <request> ...
Simple XML -
画个逗号给明天qu:
画个逗号给明天qu 写道
Android上传文件到服务器 -
画个逗号给明天qu:
...
Android上传文件到服务器 -
alranger:
我在jsp页面加上这一段代码后,问题还是存在。
解决Ext在ie9报错:不支持extjs对象的“createContextualFragment属性或方法”
我们经常会在后台线程中去做一些耗时的操作,比如去网络取数据。但是当数据取回来,需要显示到页面上的时候,会遇到一些小麻烦,因为我们都知道,android的UI页面是不允许在其他线程直接操作的。下面总结4中方法用来在线程中操作UI界面。
方法一:Handler
子线程调用Handler的sendMessage(message)发送事件。
- mHandler = new Handler() {
- @Override
- public void handleMessage(Message msg) {
- //操作界面
- myText.setText( 来自网络的信息);
- super.handleMessage(msg);
- }
- };
mHandler = new Handler() { @Override public void handleMessage(Message msg) { //操作界面 myText.setText( 来自网络的信息); super.handleMessage(msg); } };
- public class MyThread extends Thread {
- public void run() {
- // 耗时操作
- loadNetWork();
- Message msg = new Message();
- mHandler.sendMessage(msg);//向Handler发送消息,
- }
- }
public class MyThread extends Thread { public void run() { // 耗时操作 loadNetWork(); Message msg = new Message(); mHandler.sendMessage(msg);//向Handler发送消息, } }
方法二:View.post(Runnable)
- public void onClick( View v ) {
- new Thread( new Runnable() {
- public void run() {
- // 耗时操作
- loadNetWork();
- myText.( new Runnable() {
- myText.setText( 来自网络的信息);
- });
- }
- }).start();
- }
public void onClick( View v ) { new Thread( new Runnable() { public void run() { // 耗时操作 loadNetWork(); myText.( new Runnable() { myText.setText( 来自网络的信息); }); } }).start(); }
方法三:Activity.runOnUiThread(Runnable)
与view.post类似
- public void onClick( View v ) {
- new Thread( new Runnable() {
- public void run() {
- // 耗时操作
- loadNetWork();
- Activity.runOnUiThread.( new Runnable() {
- myText.setText( 来自网络的信息);
- });
- }
- }).start();
- }
public void onClick( View v ) { new Thread( new Runnable() { public void run() { // 耗时操作 loadNetWork(); Activity.runOnUiThread.( new Runnable() { myText.setText( 来自网络的信息); }); } }).start(); }
方法四:AsyncTask
//UI线程中执行 new DownloadImageTask().execute( "www.91dota.com" );
- private class LoadTask extends AsyncTask {
- protected String doInBackground( String... url ) {
- return loadDataFormNetwork( url[0] );//后台耗时操作
- }
- protected void onPostExecute( String result ) {
- myText.setText( result ); //得到来自网络的信息刷新页面
- }
- }
from:http://iaiai.iteye.com/blog/1183681
发表评论
-
xUtils简介
2014-11-25 10:04 873xUtils 包含了很多实用的android工具。 xU ... -
直接拿来用!最火的Android开源项目
2014-07-25 11:01 719转 http://www.admin10000.com/d ... -
Android APK反编译详解(附图)
2014-03-28 10:56 848http://blog.csdn.net/ithomer/ar ... -
小米人
2014-02-17 17:23 708http://www.xiaomiren.net/ -
android开发之gallery 兑现滚动一张且短距离滑动实现滚动
2013-07-02 15:28 688http://www.myexception.cn/andro ... -
TextView显示插入的图片
2013-07-01 11:29 734http://orgcent.com/android-text ... -
TextView使用SpannableString设置复合文本
2013-07-01 11:29 676http://orgcent.com/android-text ... -
转:::Android TextView文字横向自动滚动(跑马灯)
2013-06-17 11:45 1531TextView实现文字滚动需要以下几个要点: 1.文字长度长 ... -
相片滤镜开源
2013-04-27 15:01 759https://github.com/daizhenjun/I ... -
android图片特效处理之模糊效果
2013-04-27 14:57 855http://blog.csdn.net/sjf0115/ar ... -
android图片处理方法(不断收集中)
2013-04-27 14:57 584http://gundumw100.iteye.com/blo ... -
Android, WindowsPhone7, IOS ,vc2010平台40多套图片滤镜开源
2013-04-27 14:56 691http://www.cnblogs.com/daizhj/a ... -
移动云存储平台
2013-04-25 16:13 922http://bmob.cn 关于Bmob 对于很多 ... -
android ExpandableListView简单应用及listview模拟ExpandableListView
2013-02-28 11:45 709http://blog.csdn.net/jj120522/a ... -
android_App集成支付宝
2013-02-28 11:43 812http://www.cnblogs.com/qianxude ... -
Android Pull Refresh View 插件
2012-12-01 12:43 876Android Pull Refresh View htt ... -
Android-TelephoneManager(转载)
2012-10-09 22:08 1380好文章齐分享。原文地址:http://blog.si ... -
android 开源 listview separato
2012-08-27 22:51 684http://code.google.com/p/androi ... -
fragment开源项目 学习
2012-08-13 12:02 955https://github.com/tisa007/Andr ... -
Fragment学习
2012-08-13 11:53 696http://www.eoeandroid.com/threa ...
相关推荐
本文将详细介绍四种常见的在Android线程中操作UI界面的方法:使用Handler、View.post(Runnable)、Activity.runOnUiThread(Runnable)以及AsyncTask。 ### 1. 使用Handler **原理**: `Handler`机制是Android中处理...
总结起来,Xamarin.Android的非UI线程更新UI涉及了对Android线程模型的理解以及各种线程间通信技术的运用。通过Handler、RunOnUiThread、AsyncTask等方法,我们可以确保UI操作始终在主线程中安全执行。遵循最佳实践...
在Android应用开发中,线程(Thread)的使用是至关重要的,特别是在涉及到用户界面(UI)更新时。Android系统默认的主线程(Main Thread)负责处理UI交互,如果在这个线程中执行耗时操作,会阻塞UI更新,导致应用无...
本主题将深入探讨如何利用多线程来提高UI界面中的用户体验,并提供源码和UML文档供参考。 一、多线程基础 1. 线程与进程:线程是操作系统分配处理器时间的基本单位,一个进程中可以包含多个线程。相比进程,线程间...
这种方法保证了对UI的操作是在正确的线程中进行的,避免了线程安全问题。 自Android 1.5(API Level 3)起,引入了`AsyncTask`类,它是为了解决异步任务和UI交互而设计的。`AsyncTask`包含三个泛型参数,分别代表...
在Android开发中,UI线程(主线程)主要负责用户界面的绘制与交互,因此它必须保持流畅,避免被耗时操作阻塞。为了解决这个问题,Android提供了多种异步处理机制,其中一种常见的方式是使用`Thread`配合`Handler`来...
4. **进度条更新**:为了显示下载进度,需要在后台线程中定期更新下载进度,并通过Handler或者使用runOnUiThread()方法将进度信息传递到主线程进行UI更新。这通常涉及到使用ProgressDialog或ProgressBar控件。 5. *...
Android提供了Invalidate方法实现界面刷新,但是Invalidate不能直接在线程中调用,因为他是违背了单线程模型:Android UI操作并不是线程安全的,并且这些操作必须在UI线程中调用。 Android程序中可以使用的界面...
在Android应用开发中,UI线程(也称为主线程)负责处理用户交互和绘制界面,而子线程通常用于执行耗时操作,如网络请求、数据处理等。由于Android系统的安全机制,直接在子线程中修改UI是不允许的,因此我们需要通过...
在软件开发中,UI线程(用户界面线程)通常负责处理用户交互和更新界面,而后台线程则用于执行耗时的操作,如计算或网络通信,以避免阻塞UI,确保用户界面的流畅性。"无界面的UI线程交互"这个主题探讨的是在没有直接...
在Android开发中,更新UI(用户界面)是一个常见的任务,但是由于Android的主线程(也称为UI线程)是负责处理用户交互和绘制界面的,所以直接在后台线程进行UI更新可能会导致程序崩溃或者界面卡顿。为了解决这个问题...
理解Android的UI线程机制至关重要,因为错误地在非UI线程中操作UI组件会导致应用崩溃或出现不一致的用户界面。下面将详细阐述Android UI线程的工作原理,以及如何在子线程中安全地访问UI。 一、Android UI线程 1. ...
在学习和实践中,理解Android线程模型和正确更新UI的方法对于提升应用性能和用户体验至关重要。确保遵循最佳实践,避免主线程阻塞,合理安排任务执行,以及正确处理线程间的通信。通过实践和调试,你将能熟练掌握...
### Android异步处理详解:使用Thread+Handler实现非UI线程更新UI界面 #### 概述 Android系统中,每一个应用程序都运行在一个独立的Dalvik虚拟机进程中。当应用程序启动时,系统会创建一个主线程(MainThread),也...
在Android系统中,主线程(UI线程)主要负责处理用户界面交互,而后台任务如网络请求、数据处理等通常不应在主线程中执行,因为这会阻塞UI更新,导致应用无响应(ANR)。因此,我们需要使用子线程(也称工作线程)来...
在编程领域,尤其是在Android或Java应用开发中,工作线程(Worker Thread)和用户界面线程(UI Thread)是两个非常关键的概念。正确理解和运用它们对于优化程序性能、避免阻塞用户界面至关重要。本文将通过实例来...
下面将详细探讨Android线程的使用以及如何在后台线程中处理数据并更新UI。 1. 主线程与UI更新 主线程是Android应用的入口,负责处理所有与UI相关的事件,如触摸事件、键盘输入等。任何对UI的操作,包括添加、删除或...
本文将探讨如何在UI界面中简单实现多线程以及如何处理线程中的异常问题。 首先,我们需要理解在UI界面中使用多线程的基本概念。主线程通常负责处理用户交互和绘制UI,而后台线程则处理计算密集型任务。在Windows...
在Android开发中,由于UI操作必须在主线程中执行,因此当我们在子线程中处理数据后,需要将结果安全地传递到主线程进行UI更新。以下将详细讲解三种在子线程中更新UI线程的方法,特别是Handler的两种用法。 1. ...