Android中Handler常用方法
2012-12-04 13:37:23 来源:WEB开发网 package com.example.testhandler;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.app.Activity;
//Handler常用方法:
//1 post()
//2 postDelayed()
//3 sendMessage()
//4 handleMessage()
public class MainActivity extends Activity {
Runnable updateRunnable;
private final int CANCEL_RUNNABLE=99;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final Handler handler=new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
//以下为Handler第一种:根据Message的what不同做出相应的处理
if (msg.what==1) {
System.out.println("收到消息");
}
//以上为Handler第一种:根据Message的what不同做出相应的处理
//以下为:Handler第二种:handler.postDelayed(Runnable, delayMillis)
if (msg.what==CANCEL_RUNNABLE) {
System.out.println("当前消息msg.what="+msg.what);
//取消Runnable的执行
removeCallbacks(updateRunnable);
}
//以上为:Handler第二种:handler.postDelayed(Runnable, delayMillis)
}
};
/////////////////////////////////////////////////////////////////////////////////////////////
//以下为:Handler第一种:发出一个Message
new Thread(){
@Override
public void run() {
Message message1=new Message();
message1.what=1;
message1.obj=new Object();
//handle发出一个Message对象
//为方便测试以将该句子注释
//handler.sendMessage(message1);
super.run();
}
};
//以上为:Handler第一种:发出一个Message
//以下为:Handler第二种:handler.postDelayed(Runnable, delayMillis)
//发出的Runnable会在Handler所绑定线程中延迟一定时间执行
updateRunnable = new Runnable() {
public void run() {
for (int i = 5; i < 15; i++) {
System.out.println("Runnable中的i="+i);
}
}
};
//handle发出一个Runnable对象
//为方便测试以将以下两句注释
//不能使用handler.post(updateRunnable);
//应该使用handler.postDelayed(updateRunnable, 5000);
//然后立马发出一个消息,这样就可以在handleMessage中
//调用removeCallbacks()方法
handler.postDelayed(updateRunnable, 1000);
handler.sendEmptyMessage(CANCEL_RUNNABLE);
//以上为:Handler第二种:handler.postDelayed(Runnable, delayMillis)
//以下为:Handler第三种:handler.post(Runnable)
//发出的Runnable会在Handler所绑定线程中立马执行
//为方便测试以将以下一句代码注释
//handler.post(updateRunnable);
//以上为:Handler第三种:handler.post(Runnable)
}
}
- ››Android 当修改一些代码时,使用什么编译命令可以最...
- ››Android 如何添加一个apk使模拟器和真机都编译进去...
- ››Android 修改Camera拍照的默认保存路径
- ››Android 如何修改默认输入法
- ››android开发中finish()和System.exit(0)的区别
- ››Android手势识别简单封装类
- ››android中查看项目数字证书的两种方法
- ››Android中获取IMEI码的办法
- ››android 相机报错 setParameters failed
- ››Android重启运用程序的代码
- ››Android为ListView的Item设置不同的布局
- ››android bitmap与base64字符串的互相转换
更多精彩
赞助商链接