发布于 2016-03-31 11:45:57 | 120 次阅读 | 评论: 0 | 来源: 网友投递

这里有新鲜出炉的精品教程,程序狗速度看过来!

Android移动端操作系统

Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。


本文给大家分享了3种Android实现定时器的方法的示例,,需要的朋友可以参考下

方法一、使用Handler和Thread(线程)实现定时器



package com.xunfang.handerDemo;

import android.app.Activity;

import android.os.Bundle;

import android.os.Handler;

import android.os.Message;

import android.widget.TextView;

public class HanderDemoActivity extends Activity {

    TextView tvShow;

    private int i = 0;

    @Override

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.main);

        tvShow = (TextView) findViewById(R.id.tv_show);

        new Thread(new ThreadShow()).start();

    }

    // handler类接收数据

    Handler handler = new Handler() {

        public void handleMessage(Message msg) {

            if (msg.what == 1) {

                tvShow.setText(Integer.toString(i++));

                System.out.println("receive....");

            }

        };

    };

    // 线程类

    class ThreadShow implements Runnable {

        @Override

        public void run() {

            while (true) {

                try {

                    Thread.sleep(1000);

                    Message msg = new Message();

                    msg.what = 1;

                    handler.sendMessage(msg);

                    System.out.println("send...");

                } catch (Exception e) {

                    e.printStackTrace();

                    System.out.println("thread error...");

                }

            }

        }

    }

}

方法二、使用Handler类自带的postDelyed实现定时器



package com.xunfang.handerDemo;

import android.app.Activity;

import android.os.Bundle;

import android.os.Handler;

import android.widget.TextView;

public class HanderDemoActivity extends Activity {

    TextView tvShow;

    private int i = 0;

    private int TIME = 1000;

    @Override

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.main);

        tvShow = (TextView) findViewById(R.id.tv_show);

        handler.postDelayed(runnable, TIME); //每隔1s执行

    }

    Handler handler = new Handler();

    Runnable runnable = new Runnable() {

        @Override

        public void run() {

            // handler自带方法实现定时器

            try {

                handler.postDelayed(this, TIME);

                tvShow.setText(Integer.toString(i++));

                System.out.println("do...");

            } catch (Exception e) {

                // TODO Auto-generated catch block

                e.printStackTrace();

                System.out.println("exception...");

            }

        }

    };

}

方法三、使用Handler、Timer和TimerTask三个Android类实现定时器



package com.xunfang.handerDemo;

import java.util.Timer;

import java.util.TimerTask;

import android.app.Activity;

import android.os.Bundle;

import android.os.Handler;

import android.os.Message;

import android.widget.TextView;

public class HanderDemoActivity extends Activity {

    TextView tvShow;

    private int i = 0;

    private int TIME = 1000;

    @Override

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.main);

        tvShow = (TextView) findViewById(R.id.tv_show);

        timer.schedule(task, 1000, 1000); // 1s后执行task,经过1s再次执行

    }

    Handler handler = new Handler() {

        public void handleMessage(Message msg) {

            if (msg.what == 1) {

                tvShow.setText(Integer.toString(i++));

            }

            super.handleMessage(msg);

        };

    };

    Timer timer = new Timer();

    TimerTask task = new TimerTask() {

        @Override

        public void run() {

            // 发送消息

            Message message = new Message();

            message.what = 1;

            handler.sendMessage(message);

        }

    };

}



最新网友评论  共有(0)条评论 发布评论 返回顶部

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务