Android的线程Handler实现
16lz
2021-01-23
在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 修改app图标和名称的方法
- 【Android】adapter has changed解决方法
- android中控件点击两次才响应onclick方法
- android彻底结束进程的两种方法
- android和html交互--动态注入方法
- Android方法数超出限定的问题(multiDex,jumboMode)
- Android原生方法和Web JS互相调用-两种写法
- android 访问网络不能在主线程中进行以及在线程中操作UI的解决方