在 android 中的给定时间间隔后发出声音

Making sound after given interval of time in android

我正在制作一个应用程序,其中有 2 个 Buttons。现在我希望当我点击 button1 时,它会在给定的时间间隔后发出声音,并在无限循环中继续发出声音,直到并且除非我不按下 按钮2。假设button1 & Button2分别是Start & stop。

我现在在 Toast 中显示日期和时间只是为了举例。就像当我点击 button1 时它会显示祝酒词。

现在我想要的是应该在给定的时间间隔内继续显示 toast,直到并且除非我不按下 button2

现在我只能在 button1 的点击时显示祝酒词,因为我对如何设置循环感到困惑。

谁能帮我解答一下。这对我会有很大的帮助。顺便说一句,我还在学习中。

这是我的 button1 代码,即 StartBtn:

StartBtn.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View arg0) {
        // TODO Auto-generated method stub

        Calendar c = Calendar.getInstance();
        SimpleDateFormat sdf = new SimpleDateFormat("dd:MMMM:yyyy HH:mm:ss a");
        String strDate = sdf.format(c.getTime());

        Toast.makeText(getApplicationContext(), strDate, Toast.LENGTH_LONG).show();
    }
});

这应该有效:

    private Handler mHandler = new Handler();

    @Override
    public void onClick(View v) {
        if (v.getId() == R.id.button1) {
            playSoundWithDelay();
        } else if (v.getId() == R.id.button2) {
            mHandler.removeCallbacksAndMessages(null);
        }
    }

    private void playSoundAfterDelay() {
        mHandler.removeCallbacksAndMessages(null);
        mHandler.postDelayed(new Runnable() {

            @Override
            public void run() {
                // Play Sound;
                // Repeat after 1 sec
                mHandler.postDelayed(this, 1000);
            }

        }, 5000);
    }

要在应用关闭或在后台时停止 Sound/Toast,请添加:

@Override
public void onPause() {
super.onPause();
mHandler.removeCallbacksAndMessages(null);
}