Android的线程Handler实现
16lz
2022-06-07
在Android和SWT一样,他们的主线程为UI线程,如果要更新必须进行特殊的处理才可以。本文的目的通过线程定时更新界面的标题信息变化。
代码如下:
package com.easyway.android.threads;import java.util.Timer;import java.util.TimerTask;import android.app.Activity;import android.os.Bundle;import android.os.Handler;import android.os.Message;/** * UI Thread 界面的更新方式 * Android Handler的使用,在讲Handler之前,我们先提个小问题,就是如何让程序5秒钟更新一下Title. * * @author longgangbai * */public class UIThreadAndroidActivity extends Activity { //title为setTitle方法提供变量,这里为了方便我设置成了int型 private int title = 0; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Timer timer = new Timer(); timer.scheduleAtFixedRate(new MyTask(), 1, 5000); } /** * UI更新方法 */ private Handler mHandler = new Handler(){ public void handleMessage(Message msg) { switch (msg.what) { case 1: updateTitle(); break; } }; }; /** * 更新界面的线程 * @author longgangbai * */ private class MyTask extends TimerTask{ @Override public void run() { Message message = new Message(); message.what = 1; //调用更新方法 mHandler.sendMessage(message); } } /** * 具体更新界面的方式 */ public void updateTitle(){ setTitle("Welcome to longgangbai's blog " + title); title ++; } }
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.easyway.android.threads" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="14" /> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" > <activity android:label="@string/app_name" android:name=".UIThreadAndroidActivity" > <intent-filter > <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application></manifest>
更多相关文章
- Android(安卓)SDK三种更新失败及其解决办法
- Android(安卓)扩展屏幕 实现主屏副屏同步或者异步显示
- Android的线程Handler实现
- Android打开系统设置界面
- android 焦点问题
- android:Handler
- android thread handler timertask
- Android游戏引擎Rokon宣布停止更新
- Linux下Android(安卓)SDK环境搭建--使用命令更新Android(安卓)SD