Android:UI更新方法三:Handler+Worker Thread
来源:互联网 发布:精子检查中优化处理 编辑:程序博客网 时间:2024/06/05 18:09
activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".MainActivity" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="50dp" android:background="#ff999999" android:text="@string/hello_world" /> <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button" /></LinearLayout>
MainActivity.java
package com.example.updateui;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.app.Activity;import android.util.Log;import android.view.Menu;import android.view.View;import android.view.Window;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.TextView;public class MainActivity extends Activity{private static final String TAG = MainActivity.class.getSimpleName();private static final int REFRESH_ACTION = 1;private Button mButton;private TextView mTextView;private int mCount = 0;@Overrideprotected void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mTextView = (TextView) findViewById(R.id.textView1);mButton = (Button) findViewById(R.id.button1);mButton.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View arg0){// TODO Auto-generated method stubnew Thread(new Runnable() // 工作线程刷新UI{@Overridepublic void run(){// TODO Auto-generated method stubwhile (!Thread.currentThread().interrupted()){/** 这段代码也可以: * Message msg = new Message(); msg.what = * MainActivity.REFRESH_ACTION; * mHandler.sendMessage(msg); *///发送消息到UI线程进行刷新mHandler.obtainMessage(MainActivity.REFRESH_ACTION).sendToTarget();try{Thread.sleep(1000);}catch (InterruptedException e){Thread.currentThread().interrupt();}}}}).start();}});}private Handler mHandler = new Handler(){@Overridepublic void handleMessage(Message msg){// 处理消息switch (msg.what){case MainActivity.REFRESH_ACTION:mCount++;mTextView.setText("I'm updated:" + mCount);// 更新UI,这里已经是UI线程Log.i(TAG, "handleMessage");break;}super.handleMessage(msg);}};@Overridepublic boolean onCreateOptionsMenu(Menu menu){// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.activity_main, menu);return true;}}
- Android:UI更新方法三:Handler+Worker Thread
- Android:UI更新方法四:在Worker Thread中runOnUiThread直接刷新UI
- Android:UI更新方法四:在Worker Thread中runOnUiThread直接刷新UI
- Android:UI更新方法一:Handler+View.invalidate+Thread+Runnable
- 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的方法
- UI Thread & Worker Thread
- Android使用Thread+Handler实现非UI线程更新界面
- Androidの多线程之更新ui(Thread+Handler+Message)
- android中Handler、Thread、Runnable更新UI的思考
- Android使用线程更新UI----Thread、Handler、Looper、TimerTask等
- Android异步加载数据更新UI(Thread+Handler)
- android handler 更新UI
- Java 6 JVM参数选项大全(中文版)
- [android_gallery_4.0]gallery主要类介绍(二)
- Linux 下glib库的使用
- System.Data.SqlClient.SqlException: Login failed for user 'IIS APPPOOL\DefaultAppPool' in IIS7
- asp.net mvc 起始页
- Android:UI更新方法三:Handler+Worker Thread
- 解决无法安装SQL Server 2008 Management Studio Express的问题
- Ubuntu下安装fcitx中文输入法
- CString::GetLength()获得字节数的正确方法介绍
- python生成二维码
- Linux下防火墙,开启80、3306等服务端口
- linux VIM使用
- 数论(一)——素数,GCD,LCM
- GDAL计算栅格图像统计值相关说明