运用Handler与线程的sleep(long)的安卓定时器
来源:互联网 发布:sql注入漏洞如何处理 编辑:程序博客网 时间:2024/05/22 14:25
采用Handle与线程的sleep(long )方法Handler主要用来处理接受到的消息。这只是最主要的方法,当然Handler里还有其他的方法供实现,有兴趣的可以去查API。
1.定义一个Handler类,用于处理接受到的Message.
Handler handler = new Handler() {
public void handleMessage(Message msg) {
//要做的事情
super.handleMessage(msg);
}
};
2.新建一个实现Runnable接口的线程类。如下:
public class MyThread implements Runnable{
@Override
public void run() {
// TODO Auto-generated method stub
while (true) {
try {
Thread.sleep(10000);//线程暂停10秒,单位毫秒
Message message=new Message();
message.what=1;
handler.sendMessage(message);//发送消息
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
3.在需要启动线程的地方加入下面语句:
new Thread(new MyThread()).start();
4.启动线程后,线程每10s发送一次消息。
new Thread(new MyThread()).start();
4.启动线程后,线程每10s发送一次消息。
实例:
- package com.quding.thread;
- import android.app.Activity;
- import android.os.Bundle;
- import android.os.Handler;
- import android.os.Looper;
- import android.os.Message;
- import android.util.Log;
- import android.widget.TextView;
- public class MyCounter extends Activity{
- private TextView mTextView;
- private Handler handler;
- private int count;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.mycounter);
- mTextView = (TextView) findViewById(R.id.mycounter_textView);
- handler = new Handler(Looper.getMainLooper()){
- @Override
- public void handleMessage(Message msg) {
- super.handleMessage(msg);
- if(msg.what == 1){
- //添加要干的事情
- count++;
- mTextView.setText(count + "");
- }
- }
- };
- new Thread(new MyThread()).start();
- Log.e("tag", "cehsi");
- }
- public class MyThread implements Runnable{
- public void run() {
- while(true){
- try {
- Message message = new Message();
- message.what = 1;
- Thread.sleep(1000); //间隔时间在这里定
- //通过handler把这个线程的线程体放到主线程的消息队列中,使得该线程在主线程中执行
- handler.sendMessage(message);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
- }
- }
0 0
- 运用Handler与线程的sleep(long)的安卓定时器
- join(long)与sleep(long)的区别
- 方法join(long)与方法sleep(long)的区别
- 3.2.5join(long)与sleep(long)的区别
- 采用Handler的postDelayed实现安卓定时器
- 安卓开发线程与线程的通信-handler机制的原理
- 【线程】java之Thread.sleep(long)与object.wait()/object.wait(long)的区别及相关概念梳理
- 安卓定时器类Timer与消息处理类Handler
- Android Timer 定时器 与handler的配合
- Android Timer 定时器 与handler的配合
- java线程wait与sleep的区别
- java之Thread.sleep(long)与object.wait()/object.wait(long)的区别
- Handler与线程的关系
- 定时器与线程的同步
- 线程的同步与定时器
- VC++定时器的运用
- quartz 定时器的运用
- 安卓:handler的基础
- 字句解
- 【小游戏】有意思的小游戏集合
- linux sudoers设置
- JAVA事件适配器的作用
- 对象作为数据成员
- 运用Handler与线程的sleep(long)的安卓定时器
- 互斥锁与条件变量应用
- 来自官网update的一些代码
- 读书笔记-《拆掉思维里的墙》
- VB.NET版机房收费系统—数据库设计
- 锁 阅读文献篇
- 使用Setup API枚举系统设备
- 静态成员
- Highcharts结合Ajax完美实现时序图的展现(asp.net)版本(我是拿来做参考的)