Android 正确使用线程和计时器

Android 正确使用线程和计时器,android,Android,我有三个功能-动画,声音,振动。所有这些单独工作都非常好。我需要同时启动这3个功能,继续播放3秒钟,然后停止。我希望每15秒重复一次。实现这一目标的正确方法是什么? 我的振动代码如下 public void vibration(){ int dash = 1000; int medium_gap = 500; long[] pattern = { 0, // Start immediately dash, medium_gap,dash , mediu

我有三个功能-动画,声音,振动。所有这些单独工作都非常好。我需要同时启动这3个功能,继续播放3秒钟,然后停止。我希望每15秒重复一次。实现这一目标的正确方法是什么? 我的振动代码如下

public void vibration(){            
int dash = 1000;    
int medium_gap = 500;

long[] pattern = { 0,  // Start immediately
    dash, medium_gap,dash , medium_gap
};
// Only perform this pattern one time (-1 means "do not repeat")
v.vibrate(pattern, -1);
}

动画代码:

linear = (LinearLayout) findViewById(R.id.lay);// this line is after setContentView in onCreate

public void anim(){    
    drawable.addFrame(new ColorDrawable(Color.RED), 1000);  
    drawable.addFrame(new ColorDrawable(Color.WHITE), 500);         
    drawable.setOneShot(false);     
    linear.setBackgroundDrawable(drawable);         
    drawable.start();     
 }
使用声音池发出声音:

sp = new SoundPool(5, AudioManager.STREAM_NOTIFICATION, 0);
buzzer = sp.load(this, R.raw.buzzer, 0);
public void sound(){
    sp.play(buzzer, 1,1, 0, 0, 1); //start alert tone
}

您需要实现线程才能在指定的时间内一起运行

Thread myTime = new Thread()
{
      void run(){
           sleep(3000) //sleep untill 3 sec than stop 
           //your code
      }
}

你可以使用倒计时。对于每一个滴答声,你可以设置每一个滴答声15秒,并在onTick()方法中执行所需的操作。对吗?@Tamilselvan你能给我提供一个关于如何实现这一点的代码片段吗?我对使用线程和计时器知之甚少。谢谢。@newtoandroid你为什么要复制?你已经有3个答案了。@SimonZettervall只是因为我没有得到一个合适的答案。如果你有任何解决办法,请帮助:请停止张贴重复的问题,这就是为什么我会选择这一个!如果原件不符合要求,请解释、重新编辑问题、澄清。