首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

android中透过looper+handler方式在子线程中刷新UI

2012-09-11 
android中通过looper+handler方式在子线程中刷新UIpackage com.saulimport android.app.Activityimport

android中通过looper+handler方式在子线程中刷新UI

package com.saul;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
/**
?* 通过looper+handler方式在子线程中刷新UI
?* @author Saul
?*
?*/
public class UpdateTitle extends Activity {
?@Override
?public void onCreate(Bundle savedInstanceState) {
??super.onCreate(savedInstanceState);
??setContentView(R.layout.main);
??ModifyTitle modifyTitle=new ModifyTitle();
??modifyTitle.start();
?}
?class ModifyTitle extends Thread{
??TitleEventHandler handler;
??public void run(){
???Looper mainLooper=Looper.getMainLooper();
???handler=new TitleEventHandler(mainLooper);
???handler.removeMessages(0);
???Message msg=null;
???Long currentSecond;
???Long previousSecond = 0l;
???int time = 5;
???while (true) {
????currentSecond = (System.currentTimeMillis() / 1000) % 10;
????if (currentSecond != previousSecond) {
?????time--;
?????if (time < 0) {
??????break;
?????}
?????msg=handler.obtainMessage(1, 1, 1,"当前还剩" + (time + 1) + "秒");
?????handler.sendMessage(msg);
?????previousSecond = currentSecond;
????}
???}
??}
?}
?class TitleEventHandler extends Handler{

??public TitleEventHandler() {
???super();
??}

??public TitleEventHandler(Looper looper) {
???super(looper);
??}

??@Override
??public void handleMessage(Message msg) {
???super.handleMessage(msg);
???setTitle((String)msg.obj);
??}
??
?}
}

热点排行