2016-03-03 63 views
-2

我試圖在代碼上每3秒鐘發出一聲蜂鳴聲。 我寫了這個代碼..但有些東西不工作 - 並且嗶聲只出現一次,我得到崩潰如何每3秒運行一次蜂鳴聲?

我的應用程序運行更多的UI功能,所以我需要做不同的線程上的嘟嘟聲。

代碼:

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

後的堆棧跟蹤。 –

回答

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); 
}