package async_demo; import com.exercise.R; import com.exercise.R.layout; import com.exercise.R.menu; import android.os.AsyncTask; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.app.Activity; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.ProgressBar; import android.widget.TextView; public class AsyncTask_Handler extends Activity { TextView asynctask_textView; TextView handler_textview; MyHandler handler; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.async_task); asynctask_textView=(TextView) findViewById(R.id.asynctask_textview); asynctask_textView.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { // TODO Auto-generated method stub Asynctask task=new Asynctask(); task.execute(); } }); handler_textview=(TextView) findViewById(R.id.handler_textview); handler_textview.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { // TODO Auto-generated method stub handler=new MyHandler(); MyThread mt=new MyThread(); new Thread(mt).start(); }}); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.async_task, menu); return true; } class Asynctask extends AsyncTask<String, ProgressBar, String>{ @Override protected String doInBackground(String... params) { // TODO Auto-generated method stub String text="AsynacTask_Change"; return text; } @Override protected void onCancelled(String result) { // TODO Auto-generated method stub super.onCancelled(result); } @Override protected void onPostExecute(String result) { // TODO Auto-generated method stub asynctask_textView.setText(result); //在asynctask中修改UI } @Override protected void onProgressUpdate(ProgressBar... values) { // TODO Auto-generated method stub super.onProgressUpdate(values); } } class MyHandler extends Handler{ @Override public void handleMessage(Message msg) { // TODO Auto-generated method stub super.handleMessage(msg); if (msg.what==1010){ Bundle b=msg.getData(); String textString =b.getString("text"); AsyncTask_Handler.this.handler_textview.setText(textString); //在handler中修改ui }; } } class MyThread implements Runnable{ @Override public void run() { // TODO Auto-generated method stub Message msg=new Message(); Bundle bundle=new Bundle(); bundle.putString("text","Change" ); msg.setData(bundle); msg.what=1010; AsyncTask_Handler.this.handler.sendMessage(msg); } } }
相关推荐
Handler与AsyncTask使用示例,Handler AsyncTask 示例 looper
Handler,AsyncTask,Looper自定义线程使用示例,自定义线程与UI线程交互,访问UI线程控件
Handler与AsyncTask共2页.pdf.zip
Android Handler AsyncTask 异步加载
android Handler Thread AsyncTask httpURLConnection学习的代码
9Handler&AsyncTask实验报告
Handler和AsyncTask,面试中经常被问到的知识点,详细了解他们的区别
比较了handler加thread 和 AsyncTask 在处理消息的不同,详见博客 http://blog.csdn.net/renlei0109/article/details/39524463
采用两种方式thread+handler和asynctask方式来异步下载网络上的图片
本文实例讲述了Android通过Handler与AsyncTask两种方式动态更新ListView的方法。分享给大家供大家参考,具体如下: 有时候我们需要修改已经生成的列表,添加或者修改数据,notifyDataSetChanged()可以在修改适配器...
Looper-Handler-AsyncTask
在Android中使用AsyncTask和Handler线程间交互的方式,详情参见博客:http://www.cnblogs.com/plokmju/p/android_AsyncTask.html和http://www.cnblogs.com/plokmju/p/android_Handler.html
AsyncTask与Handler实现进度条的方式
Android的AsyncTask比Handler更轻量级一些 适用于简单的异步处理 首先明确Android之所以有Handler和AsyncTask 都是为了不阻塞主线程(UI线程) 且UI的更新只能在主线程中完成 因此异步处理是不可避免的 Android...
AsyncTask和Handler的优缺点介绍和比较
三种不同的方式讲述了如何开辟新线程处理进度条的更新。运行时需修改Mainfest,来用不同的方式运行。默认是使用AsyncTask运行
AsyncTask和Handler
博客《AsnyncTask与handler(一)——AsyncTask异步处理》对应的源码,博客地址:http://blog.csdn.net/harvic880925/article/details/24774883
在Android中实现异步任务机制有两种方式,Handler和AsyncTask。 Handler模式需要为每一个任务创建一个新的线程,任务完成后通过Handler实例向UI线程发送消息,完成界面的更新,这种方式对于整个过程的控制比较精细,...