日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > Android >内容正文

Android

Androidの多线程之更新ui(Thread+Handler+Message)

發(fā)布時(shí)間:2023/12/15 Android 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Androidの多线程之更新ui(Thread+Handler+Message) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

流程:

1.點(diǎn)擊開始,顯示進(jìn)度對(duì)話框,啟動(dòng)線程,循環(huán)發(fā)送消息(1-100)

2.更新對(duì)話框中的進(jìn)度,和標(biāo)題欄的進(jìn)度

3.到達(dá)最大進(jìn)度值時(shí),關(guān)閉對(duì)話框,標(biāo)題欄顯示更新完成

?

解析:

1.在主線程處理handler的消息,更新Ui

2.在其他線程里用主線程的handler不停發(fā)送消息

3.線程啟動(dòng),發(fā)送消息

?

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 @Override 22 public void onCreate(Bundle savedInstanceState) { 23 super.onCreate(savedInstanceState); 24 this.getWindow().requestFeature(Window.FEATURE_PROGRESS); 25 setContentView(R.layout.main); 26 setSecondaryProgress(10000); //設(shè)置副進(jìn)度為10000 27 handler = new Handler(){ 28 29 @Override 30 public void handleMessage(Message msg) { 31 // TODO Auto-generated method stub 32 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); // 執(zhí)行完后使進(jìn)度條隱藏 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 @Override 58 public void onClick(View v) { 59 // TODO Auto-generated method stub 60 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 @Override 77 public void run() { 78 // TODO Auto-generated method stub 79 for(int i=0;i<=100;i++){ 80 81 handler.sendEmptyMessage(i); 82 } 83 } 84 85 86 }).start(); 87 } 88 }

總結(jié)

以上是生活随笔為你收集整理的Androidの多线程之更新ui(Thread+Handler+Message)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。