Android Handler的使用方法
如何讓程序5秒鐘更新一下Title.
首先我們看一下習(xí)慣了Java編程的人,在不知道Handler的用法之前是怎么樣寫的程序,代碼如下所示:
package com.example.androidhandletest;
import java.util.Timer;
import java.util.TimerTask;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.app.Activity;
import android.util.Log;
import android.view.Menu;
public class MainActivity extends Activity {
?private int title;
??@Override
?protected void onCreate(Bundle savedInstanceState) {
??super.onCreate(savedInstanceState);
??setContentView(R.layout.activity_main);
??Timer timer=new Timer();
??timer.scheduleAtFixedRate(new MyTask(), 1, 2000);
??
?}
?public class MyTask extends TimerTask {
??@Override
??public void run() {
???// TODO Auto-generated method stub
???Log.i("timer", "update...");
???setTitle("update title : " + title);
???title++;
??}
?}
?
?@Override
?public boolean onCreateOptionsMenu(Menu menu) {
??// Inflate the menu; this adds items to the action bar if it is present.
??getMenuInflater().inflate(R.menu.main, menu);
??return true;
?}
}
?
程序無法運行,所以Android 引進了Handler 這個特殊的類,可以說它是Runnable和Activity交互的橋梁
,所以我們只要在run方法中發(fā)送Message,而在Handler里,通過不同的Message執(zhí)行不同的任務(wù)。
所以我們修改后的代碼如下:
package com.example.androidhandletest;
import java.util.Timer;
import java.util.TimerTask;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.app.Activity;
import android.util.Log;
import android.view.Menu;
public class MainActivity extends Activity {
?private int title;
?private Handler handler=new Handler(){
??@Override
??public void handleMessage(Message msg) {
???// TODO Auto-generated method stub
???//super.handleMessage(msg);
???switch(msg.what){
???case 1:
????UpdateTile();
????break;
???}
??}?
?};
?private void UpdateTile() {
??// TODO Auto-generated method stub
??this.setTitle("update title : " + title);
??title++;
?}
?@Override
?protected void onCreate(Bundle savedInstanceState) {
??super.onCreate(savedInstanceState);
??setContentView(R.layout.activity_main);
??Timer timer=new Timer();
??timer.scheduleAtFixedRate(new MyTask(), 1, 2000);
??
?}
?public class MyTask extends TimerTask {
??@Override
??public void run() {
???// TODO Auto-generated method stub
???Log.i("timer", "update...");
???Message msg=new Message();
???msg.what=1;
???handler.sendMessage(msg);
??}
?}
?
?@Override
?public boolean onCreateOptionsMenu(Menu menu) {
??// Inflate the menu; this adds items to the action bar if it is present.
??getMenuInflater().inflate(R.menu.main, menu);
??return true;
?}
}
?
轉(zhuǎn)載于:https://www.cnblogs.com/MMLoveMeMM/articles/3330422.html
總結(jié)
以上是生活随笔為你收集整理的Android Handler的使用方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【C/C++学习】之七、指向函数的指针
- 下一篇: Android开发的小技巧总结