handler初探
2014-06-28 16:39
120 查看
package cn.itcast.test;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.widget.TextView;
public class TestActivity extends Activity {
private TextView tv;
//只有主线程才可以更新界面. 防止多个线程干扰界面更新.
//子线程把消息发送给主线程,才可以让主线程更新ui.
//android的消息机制.
//所有与界面相关的操作都在主线程中.
//java程序执行是从main方法开始执行的.
//android执行main方法是由是有框架执行的.之后读取我们的清单配置文件.
//找到要激活的demoactivity. new出demoactivity.之后oncreat方法.
//主线程,oncreat方法是主线程.只要不是new thread子线程就行.
//1 .创建出来handler 要求必须在主线程里面
private Handler handler = new Handler(){
// 主线程处理消息 调用的方法
@Override
public void handleMessage(Message msg) {
//在这里操作更新界面的工作.
//将msg里面的信息视为count.
int count = (Integer) msg.obj;
tv.setText("当前条目为 "+ count);
//发现消息,之后处理消息.
super.handleMessage(msg);
}
};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
tv = (TextView) this.findViewById(R.id.tv);
//每隔2秒钟更新一下 tv的内容
new Thread(){
@Override
public void run() {
for(int i = 0;i<100;i++){
/* tv.setText("当前为"+ i);*/
try {
sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
Message msg = new Message();
//指定msg的参数.
msg.obj = i;
//发送消息到消息队列.
handler.sendMessage(msg);
}
super.run();
}
}.start();
}
}
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.widget.TextView;
public class TestActivity extends Activity {
private TextView tv;
//只有主线程才可以更新界面. 防止多个线程干扰界面更新.
//子线程把消息发送给主线程,才可以让主线程更新ui.
//android的消息机制.
//所有与界面相关的操作都在主线程中.
//java程序执行是从main方法开始执行的.
//android执行main方法是由是有框架执行的.之后读取我们的清单配置文件.
//找到要激活的demoactivity. new出demoactivity.之后oncreat方法.
//主线程,oncreat方法是主线程.只要不是new thread子线程就行.
//1 .创建出来handler 要求必须在主线程里面
private Handler handler = new Handler(){
// 主线程处理消息 调用的方法
@Override
public void handleMessage(Message msg) {
//在这里操作更新界面的工作.
//将msg里面的信息视为count.
int count = (Integer) msg.obj;
tv.setText("当前条目为 "+ count);
//发现消息,之后处理消息.
super.handleMessage(msg);
}
};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
tv = (TextView) this.findViewById(R.id.tv);
//每隔2秒钟更新一下 tv的内容
new Thread(){
@Override
public void run() {
for(int i = 0;i<100;i++){
/* tv.setText("当前为"+ i);*/
try {
sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
Message msg = new Message();
//指定msg的参数.
msg.obj = i;
//发送消息到消息队列.
handler.sendMessage(msg);
}
super.run();
}
}.start();
}
}
相关文章推荐
- Android Handler 原理初探
- 初探java的Proxy+InvocationHandler
- HttpHandler初探 - 页面上输出图像
- HttpHandler初探 - 页面上输出图像
- Handler初探
- 初探java的Proxy+InvocationHandler
- handler入门学习笔记
- Windows脚本初探之Windows Script Host(WSH)
- Android中滑屏初探 ---- scrollTo 以及 scrollBy方法使用说明
- Android中使用Handler造成内存泄露的分析和解决
- Message.obtain() 和Handler.obtainMessage()的区别
- Android Handler的使用(一)
- Handler初步学习
- [Android] The handler class should be static or leaks might occur原因及解决方法
- handler.post(r)同一个线程的疑惑
- Android源码基础解析之HandlerThread
- C++入门解惑(2)——初探指针(上)
- handler 使用 重写 handleMessage 消息队列
- 【安卓笔记】Handler+Thread使用浅析
- Visual AssistX refactor功能初探