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)文章
Android入門之BroadCast模擬實現(xiàn)異地登錄事件發(fā)生后的主動退出
隨著對BroadCast的越來越深入,我們今天要實現(xiàn)一個稍微復(fù)雜一點的BroadCast。即只允許一個設(shè)備登錄一個帳號時,APP會彈一個對話框如:您的賬號在別處登錄,請重新登陸!感興趣的可以了解一下2022-12-12Android開發(fā)手冊Button按鈕實現(xiàn)點擊音效
這篇文章主要為大家介紹了Android開發(fā)手冊Button按鈕實現(xiàn)點擊音效示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06非常實用的小功能 Android應(yīng)用版本的更新實例
這篇文章主要為大家詳細(xì)介紹了一個非常實用的小功能,Android應(yīng)用版本的更新實例,感興趣的小伙伴們可以參考一下2016-08-08Rocksdb?Memtable數(shù)據(jù)結(jié)構(gòu)源碼解析
這篇文章主要為大家介紹了Rocksdb?Memtable數(shù)據(jù)結(jié)構(gòu)源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11Android中將Bitmap對象以PNG格式保存在內(nèi)部存儲中的方法
在Android中進(jìn)行圖像處理的任務(wù)時,有時我們希望將處理后的結(jié)果以圖像文件的格式保存在內(nèi)部存儲空間中,本文以此為目的,介紹將Bitmap對象的數(shù)據(jù)以PNG格式保存下來的方法2017-08-08Android EditText搜索框?qū)崿F(xiàn)圖標(biāo)居中
本篇文章主要介紹了Android EditText搜索框?qū)崿F(xiàn)圖標(biāo)居中,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-07-07Android 提交或者上傳數(shù)據(jù)時的dialog彈框動畫效果
我們在使用支付寶支付的時候會看到類似這種彈框動畫效果,下面通過實例代碼給大家分享android 提交或者上傳數(shù)據(jù)時的彈框動畫效果,感興趣的的朋友參考下2017-07-07