У меня есть простое классическое утверждение, что каждые 200 миллисекунд воспроизводится звук (метроном).
Я написал это с помощью Handlers, а потом по-другому, с помощью Threads. Проблема одинакова в обоих случаях: когда я нажимаю аппаратную кнопку домой, а также просто когда я нажимаю кнопку, чтобы открыть ListView, метроном ужасно тормозит на некоторое время.
Эта проблема (не такая сильная, но, тем не менее, присутствующая) заключается в том, что вы ничего не делаете и оставляете приложение на переднем плане.
Любые идеи?
Вот код:
общедоступный класс Metronome реализует Runnable{
private Handler mHandler = new Handler();
public static long mStartTime;
Main mainContext;
public Metronomo(Main context) {
mainContext = context;
}
public void play() {
mStartTime = System.currentTimeMillis();
mHandler.postDelayed(this, 100);
}
public final void stop(){
mHandler.removeCallbacks(this);
}
public void run(){
//play the ogg file in position 1
mSoundManager.playSound(1);
//reschedule the next playing after 200ms
mHandler.postAtTime(this, SystemClock.uptimeMillis() + 200);
}
};