我正在寻找一种方法,使用scheduleAtFixedRate(delay,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);
首先我想知道这样运行是否安全?有另一种方式吗?
我知道我必须拨打Looper
来同步两个Runnables,但我不知道应该在哪里添加它。