如何定期检查一下?

时间:2010-08-01 19:34:28

标签: android

初学者,我有一个简单的问题。

在Android中,定期检查某些内容的最佳方法是什么?

请耐心等待,我会尽力解释一下 -

例如我的音频应用程序非常简单,主要活动和服务。主要活动有一个UI,有两个按钮,开始和停止音频。我按开始,音频服务开始。同样,当我单击“停止”时,服务停止并且音频结束。如果isLooping()被硬编码为真,则没有问题,因为音频永远不会结束,除非我按下停止按钮,停止音频服务并重置按钮状态。

这是一个问题,因为我将isLooping()设置为false,因此音频不会循环播放。因此音频将停止播放但服务仍在运行。

我希望能够检测音频何时停止,以便我可以设置UI按钮的状态。所以我需要一些始终检查音频是否正在播放的内容(即检查player.isPlaying()以便我可以结束服务并设置按钮的启用/禁用状态。

我想出了绑定到服务,所以我可以通过我的主要活动访问MediaPlayer控件,所以我知道检查它是否正在播放的代码,但是我在哪里放置这些代码以便一直检查?

我有道理吗?我知道这可能很简单。谢谢你的帮助。

1 个答案:

答案 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并在那里你把它。

在运行代码中,您可以检查其他内容 音乐,我只是用音频展示一个例子。