AndroidのスレッドHandler実装
3107 ワード
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>