Androidの多线程之更新ui(Thread+Handler+Message)
来源:互联网 发布:网上淘宝贷款是真的吗 编辑:程序博客网 时间:2024/06/04 19:19
流程:
1.点击开始,显示进度对话框,启动线程,循环发送消息(1-100)
2.更新对话框中的进度,和标题栏的进度
3.到达最大进度值时,关闭对话框,标题栏显示更新完成
解析:
1.在主线程处理handler的消息,更新Ui
2.在其他线程里用主线程的handler不停发送消息
3.线程启动,发送消息
1 package com.bvin.thread; 2 3 import android.app.Activity; 4 import android.app.ProgressDialog; 5 import android.os.Bundle; 6 import android.os.Handler; 7 import android.os.Message; 8 import android.util.Log; 9 import android.view.View;10 import android.view.Window;11 import android.widget.Button;12 import android.widget.TextView;13 14 public class MainrActivity extends Activity {15 /** Called when the activity is first created. */16 private Handler handler;17 private ProgressDialog dialog;18 19 private TextView tv;20 21 @Override22 public void onCreate(Bundle savedInstanceState) {23 super.onCreate(savedInstanceState);24 this.getWindow().requestFeature(Window.FEATURE_PROGRESS);25 setContentView(R.layout.main);26 setSecondaryProgress(10000); //设置副进度为1000027 handler = new Handler(){28 29 @Override30 public void handleMessage(Message msg) {31 // TODO Auto-generated method stub32 super.handleMessage(msg);33 Log.e("progress:", ""+msg.what);34 setTitle("更新--"+msg.what);35 setProgress(msg.what*100);36 if(msg.what==100){37 setProgressBarVisibility(false); // 执行完后使进度条隐藏38 dialog.dismiss();39 setTitle("更新完成");40 }41 }42 43 44 };45 initViews();46 47 }48 49 private void initViews(){50 51 dialog= new ProgressDialog(MainrActivity.this);52 dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);53 dialog.setMax(100);54 Button bt = (Button)findViewById(R.id.bt);55 bt.setOnClickListener(new View.OnClickListener() {56 57 @Override58 public void onClick(View v) {59 // TODO Auto-generated method stub60 setProgressBarVisibility(true);61 dialog.show();62 exec();63 }64 });65 66 tv = (TextView)findViewById(R.id.tv);67 68 69 70 }71 72 private void exec(){73 74 new Thread(new Runnable(){75 76 @Override77 public void run() {78 // TODO Auto-generated method stub79 for(int i=0;i<=100;i++){80 81 handler.sendEmptyMessage(i);82 }83 }84 85 86 }).start();87 }88 }
- Androidの多线程之更新ui(Thread+Handler+Message)
- 多线程之更新ui(Thread+Handler+Message)
- android UI更新问题 Thread和Looper以及Handler和Message详解 Android开发必读
- Android Handler+Thread实现更新Ui
- Android 异步更新UI----handler+thread
- Android 异步更新UI----handler+thread
- Android 异步更新UI----handler+thread
- android Thread+handler 实现UI更新
- Android 异步更新UI----handler+thread
- Android多线程:Handler应用之更新UI界面
- Android UI编程(4)——Thread、Message、Handler
- Android之UI更新--Handler
- android之handler更新UI
- Android UI应用之 UI更新使用Thread、Handler、Looper、TimerTask
- android 多线程之Handler和Message未完成
- [Android基础知识] 之十五: Android中更新UI的线程:Thread 、Handler、Looper、TimerTask等
- Android运用Handler和Message实现异步更新UI界面
- android thread Handler 、Looper、 Message、 Message Queue
- Android自定义简易luancherDemo(有图有真相哦)
- AndroidのUI之Spinner箭头效果
- Androidの遇到的问题集合之MaginPadding
- C语言文件读写函数——fputc和fgetc
- Androidの多线程之数Looper通信
- Androidの多线程之更新ui(Thread+Handler+Message)
- Androidの多线程之更新ui(AsyncTask)
- Androidの多线程之Handler创建新线程
- Androidの多线程之多线程用法大集合(未整理)
- Javaの二进制之整形输出二进制
- 【Python基础】之has_key(key) or key in d
- Javaの位操作之规律集合
- 常用算法之分治算法
- AndroidのUI之视图缓存