初学者,我有一个简单的问题。
在Android中,定期检查某些内容的最佳方法是什么?
请耐心等待,我会尽力解释一下 -
例如我的音频应用程序非常简单,主要活动和服务。主要活动有一个UI,有两个按钮,开始和停止音频。我按开始,音频服务开始。同样,当我单击“停止”时,服务停止并且音频结束。如果isLooping()
被硬编码为真,则没有问题,因为音频永远不会结束,除非我按下停止按钮,停止音频服务并重置按钮状态。
这是一个问题,因为我将isLooping()
设置为false,因此音频不会循环播放。因此音频将停止播放但服务仍在运行。
我希望能够检测音频何时停止,以便我可以设置UI按钮的状态。所以我需要一些始终检查音频是否正在播放的内容(即检查player.isPlaying()
以便我可以结束服务并设置按钮的启用/禁用状态。
我想出了绑定到服务,所以我可以通过我的主要活动访问MediaPlayer
控件,所以我知道检查它是否正在播放的代码,但是我在哪里放置这些代码以便一直检查?
我有道理吗?我知道这可能很简单。谢谢你的帮助。
答案 0 :(得分:1)
您可以使用TimerTask和Timer重复此操作。代码如下:
public final void RepeatSoundFunction(){
t = new Timer();
tt = new TimerTask() {
@Override
public void run() {
mp.seekTo(0); //Reset sound to beginning position
mp.start(); //Start the sound
t.purge(); //Purge the sound
}
};
t.schedule(tt, 10*1000); //Schedule to run tt (TimerTask) again after 10 seconds
}
然后你设置一个MediaPlayer onCompletionListener并在那里你把它。
在运行代码中,您可以检查其他内容 音乐,我只是用音频展示一个例子。