2016-03-03 3 views
-2

Я пытаюсь запустить звуковой сигнал каждые 3 секунды на моем коде. Я написал этот код .. но что-то не работает - и звуковой сигнал появляется только один раз, и я получаю сбойКак запустить звуковой сигнал каждые 3 секунды?

Мое приложение работает с большим количеством функций пользовательского интерфейса, поэтому мне нужно сделать звуковой сигнал в разных потоках.

Код:

private Timer _timeTimeToBeep; 
private TimerTask _task; 
private Thread _thread; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
    setSupportActionBar(toolbar); 

    _displayValue = (TextView)findViewById(R.id.displayValue); 

    displayValueUpdate(); 

    _timeTimeToBeep = new Timer(); 

    _task = new TimerTask() { 

     @Override 
     public void run() { 


      _thread = new Thread(new Runnable() { 
       @Override 
       public void run() { 
        playSound(); 
       } 
      }); 

      _thread.start(); 
     } 
    }; 

} 


public void playSound(){ 
    final ToneGenerator toneGenerator = new ToneGenerator(AudioManager.STREAM_NOTIFICATION, 100); 
    toneGenerator.startTone(ToneGenerator.TONE_PROP_BEEP); 
} 

// START BEEP BUTTON HERE 
public void startPlayClickBtn(View view) throws InterruptedException { 
    _timeTimeToBeep.schedule(_task, 3000); 
} 
+0

сообщение StackTrace. –

ответ

2

изменить ваш startPlayClickBtn, как показано ниже:

// START BEEP BUTTON HERE 
public void startPlayClickBtn(View view) throws InterruptedException { 
    _timeTimeToBeep.schedule(_task, 3000, 3000); 
} 
+0

Очень полезно. спасибо – Brandacus

1

На самом деле вам не хватает одного параметра для метода schedule. Вы должны пройти task, delay, period.

Изменить это следующим образом:

public void startPlayClickBtn(View view) throws InterruptedException { 
    _timeTimeToBeep.schedule(_task, 3000, 3000); 
} 
Смежные вопросы