我正在创建一个应用程序,其中我有2 Button
个。现在我希望当我点击 button1 时,它会在给定的时间间隔后发出声音并继续以无限循环发出声音,直到除非我不按 button2 < / strong>即可。假设button1&amp; Button2是Start&amp;分别停止。
我正在显示日期&amp;现在Toast
中的时间就是例如。就像当我点击 button1 时,它会显示一个祝酒词。
现在我希望在给定的时间间隔内继续显示吐司,除非我不按 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();
}
});
答案 0 :(得分:1)
这应该有效:
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);
}
要在应用关闭或在后台停止声音/吐司,请添加以下内容:
@Override
public void onPause() {
super.onPause();
mHandler.removeCallbacksAndMessages(null);
}