Android 在计时器内穿行
我正在寻找一种方法,使用scheduleAtFixedRatedelay,period每隔3秒执行一个方法,并执行另一个方法,从第一个方法延迟100毫秒 以下是我迄今为止所做的尝试:Android 在计时器内穿行,android,multithreading,timer,Android,Multithreading,Timer,我正在寻找一种方法,使用scheduleAtFixedRatedelay,period每隔3秒执行一个方法,并执行另一个方法,从第一个方法延迟100毫秒 以下是我迄今为止所做的尝试: new Timer().scheduleAtFixedRate(new TimerTask() { public void run() { try { mmOutStream
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毫秒后运行。因此,是否在同一线程中并不重要