android開發(fā)教程之a(chǎn)ndroid的handler使用方法
Android Handler的使用,在講Handler之前,我們先提個小問題,就是如何讓程序5秒鐘更新一下Title.
首先我們看一下習(xí)慣了Java編程的人,在不知道Handler的用法之前是怎么樣寫的程序,代碼如下所示:
package com.android.tutor;
import java.util.Timer;
import java.util.TimerTask;
import android.app.Activity;
import android.os.Bundle;
public class HandlerDemo extends Activity {
//title為setTitle方法提供變量,這里為了方便我設(shè)置成了int型
private int title = 0;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Timer timer = new Timer();
timer.scheduleAtFixedRate(new MyTask(), 1, 5000);
}
private class MyTask extends TimerTask{
@Override
public void run() {
setTitle("Welcome to Mr Wei's blog " + title);
title ++;
}
}
}
然而當(dāng)我們執(zhí)行程序,并不能達(dá)到我們預(yù)期的效果,所以Android 引進(jìn)了Handler 這個特殊的類,可以說它是Runnable和Activity交互的橋梁
,所以我們只要在run方法中發(fā)送Message,而在Handler里,通過不同的Message執(zhí)行不同的任務(wù)。
所以我們修改后的代碼如下:
package com.android.tutor;
import java.util.Timer;
import java.util.TimerTask;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
public class HandlerDemo extends Activity {
//title為setTitle方法提供變量,這里為了方便我設(shè)置成了int型
private int title = 0;
private Handler mHandler = new Handler(){
public void handleMessage(Message msg) {
switch (msg.what) {
case 1:
updateTitle();
break;
}
};
};
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Timer timer = new Timer();
timer.scheduleAtFixedRate(new MyTask(), 1, 5000);
}
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 Mr Wei's blog " + title);
title ++;
}
}
下面我們看一下效果圖:
- Android多線程處理機(jī)制中的Handler使用介紹
- Android開發(fā)筆記 Handler使用總結(jié)
- Android使用Handler和Message更新UI
- Android開發(fā)使用UncaughtExceptionHandler捕獲全局異常
- 實例講解Android多線程應(yīng)用開發(fā)中Handler的使用
- 詳解Android中Handler的使用方法
- android使用handler ui線程和子線程通訊更新ui示例
- android使用handlerthread創(chuàng)建線程示例
- android Handler詳細(xì)使用方法實例
- Android中handler使用淺析
相關(guān)文章
Kotlin FrameLayout與ViewPager2控件實現(xiàn)滾動廣告欄方法
這篇文章主要介紹了Kotlin FrameLayout與ViewPager2控件實現(xiàn)滾動廣告欄,F(xiàn)rameLayout與ViewPager2是Android開發(fā)中非常常見的布局組件,并且它不單單是一個幀布局組件,可以用它實現(xiàn)多種功能,感興趣的朋友一起來看看吧2022-12-12
解析android 流量監(jiān)測的實現(xiàn)原理
本篇文章是對android中流量監(jiān)測的實現(xiàn)原理進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06
簡略分析Android的Retrofit應(yīng)用開發(fā)框架源碼
這篇文章主要介紹了Android的Retrofit應(yīng)用開發(fā)框架的源碼分析,作者對Volley和Retrofit兩個框架進(jìn)行了一些對比,比較精彩,需要的朋友可以參考下2016-02-02

