Android 在计时器内穿行

Android 在计时器内穿行,android,multithreading,timer,Android,Multithreading,Timer,我正在寻找一种方法,使用scheduleAtFixedRatedelay,period每隔3秒执行一个方法,并执行另一个方法,从第一个方法延迟100毫秒 以下是我迄今为止所做的尝试: new Timer().scheduleAtFixedRate(new TimerTask() { public void run() { try { mmOutStream

我正在寻找一种方法,使用scheduleAtFixedRatedelay,period每隔3秒执行一个方法,并执行另一个方法,从第一个方法延迟100毫秒

以下是我迄今为止所做的尝试:

new Timer().scheduleAtFixedRate(new TimerTask()

        {
            public void run()

            {

                try {
                    mmOutStream.write(buffer);
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }

                new Handler().postDelayed(new Runnable()

                {

                    public void run()
                    {
                        Log.v("msg","i am inside postDelayed");
                        try {
                            s.genTone();
                        } catch (IOException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        }
                        s.playSound();

                    }
                }

                        ,100);
            }
        }


        , 0, 3000);
首先我想知道这样运行安全吗?还有别的办法吗?
我知道我必须调用一个循环器来同步两个可运行程序,但我不知道应该在何处添加它。

我建议在第一个计时器之外编写一个单独的处理程序/计时器对象,然后从第一个计时器内部对其进行调度。可能更安全,并使您能够更好地控制每个线程。您希望在第一个任务执行100毫秒后运行的任务与第一个任务在同一个线程中运行,还是在不同的线程中运行?我希望它在第一个任务执行100毫秒后运行。因此,是否在同一线程中并不重要