Android Timer计时器的使用-Timer.schedule

时间:2019-01-10
本文章向大家介绍Android Timer计时器的使用-Timer.schedule,主要包括Android Timer计时器的使用-Timer.schedule使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

计时器即使可以相当于点击按钮引发事件,但是不需要用户执行任何操作,可以自动出发事件。

使用计时器的过程如下:

 case R.id.button_timer://一个button,点击改button后创建一个Timer计时器,后面就不用点击按钮,自动执行run方法33遍,33遍是写在run方法中的。

                Timer t=new Timer();//创建Timer对象
                player = MediaPlayer.create(this,R.raw.ultragesture);//业务代码,创建MediaPlayer对象
                myTaskStart mytaskstart = new myTaskStart();//创建TimerTask对象,Timer要执行的程序写在改类中的run方法中
                t.schedule(mytaskstart,5000,7000);//调用Timer.schedule方法使得run中的代码自动重复执行
                break;

其中myTaskStart的实现如下:是一个内部类,直接写在MainActivity中就可以了。

class myTaskStart extends TimerTask{
        @Override
    public void run(){
            //开始录音
                System.out.println("启动程序");

                //count为一个全局变量,该全局变量来控制run的运行次数
                if(count<33){
                    count=count+1;
                }
                else {
                    this.cancel();
                    System.exit(0);
                }
                //结束使用count控制run的运行次数


            //开始更新TextView里面的字符串
            textView.post(new Runnable() {
                @Override
                public void run() {
                    textView.setText("start"+count);
                }
            });
            //结束更新TextView里面的字符串

                player.start();
                String fileName = new SimpleDateFormat("yyyyMMddhhmmss").format(new Date());
                audioRecorder.createDefaultAudio(fileName);    // status = Status.STATUS_READY;
                audioRecorder.startRecord(null);

              //等待录音
            try {
                Thread.sleep(5000);
            }
            catch (InterruptedException e)
            {
                Toast.makeText(getApplicationContext(),"异常",Toast.LENGTH_LONG).show();
            }

            //停止录音
            System.out.println("停止录音啊啊啊啊");
            audioRecorder.stopRecord();
            player.stop();

            textView.post(new Runnable() {
                @Override
                public void run() {
                    textView.setText("end");
                }
            });

            //在player.stop()后面添加player.prepare(),需要处理异常!
            try {
                player.prepare();
            }
            catch (IOException e)
            {
                System.out.println("player初始化失败!");
            }
            //结束添加player.prepare

        }
}