在 android 中的给定时间间隔后发出声音
Making sound after given interval of time in android
我正在制作一个应用程序,其中有 2 个 Button
s。现在我希望当我点击 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);
}
我正在制作一个应用程序,其中有 2 个 Button
s。现在我希望当我点击 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);
}