日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android Handler的使用方法

發(fā)布時間:2023/12/18 Android 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android Handler的使用方法 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

如何讓程序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)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。