我有一个Android应用程序需要按照定时间隔播放声音资源,比如每120秒播放一次。
我知道如何访问声音资源并播放它们,但是时间计时器部分我不确定。什么是最好的方法?
答案 0 :(得分:0)
我最后放弃Timer
方法并在android-labs找到一个例子后使用了Handler
。
因此,我没有在我的活动Timer
中生成TimerTask
和onCreate
,而是将其声明为私有Handler
,内嵌Runnable
:
private Handler _playRandomSoundHandler = new Handler();
private Runnable _playRandomSoundTask = new Runnable() {
public void run() {
SoundManager.playRandom();
_playRandomSoundHandler.postDelayed(_playRandomSoundTask, Prefs.getDelayInMilliseconds(getApplicationContext()));
}
};
另外,我必须在我的活动onResume
和onPause
中添加代码:
@Override
protected void onResume() {
super.onResume();
_playRandomSoundHandler.postDelayed(_playRandomSoundTask, Prefs.getDelayInMilliseconds(this));
}
@Override
protected void onPause() {
super.onPause();
_playRandomSoundHandler.removeCallbacks(_playRandomSoundTask);
SoundManager.stop();
}
这种方法看起来效果很好。