如何实现点击返回键,退出一个 while 循环。
public void clickPlay(){
SoundPool mSoundPool = new SoundPool(1, AudioManager.STREAM_SYSTEM, 5);
mSoundPool.load(this,R.raw.shuidi,1);
int count = 0;
while (!result) {
keyevent_bool = keyCode != 0;
if (keyevent_bool) {
break;
}
try {
mSoundPool.play(1, (float) 0.01, (float) 0.01, 0, 0, 1);
Thread.sleep(1 * 1000); //设置暂停的时间 1 秒
mSoundPool.stop(1);
count++;
} catch (InterruptedException e) {
e.printStackTrace();
}
}
mSoundPool.release();
}
@Override
public void onBackPressed() {
super.onBackPressed();
keyCode = KeyEvent.KEYCODE_BACK;
}
1
yejianmail 2020-11-05 09:15:54 +08:00 via Android
现在 Android 的架构好多都是 mvvm,可以观察 livedata 的状态变化,或者你把播放器做成一个状态机,在循环里根据状态变化做不同的事,点击后改变状态
|
2
L5411 2020-11-05 09:35:30 +08:00
看代码不是已经实现了功能
|
3
Melodyer 2020-11-05 09:36:59 +08:00
你这 Thread.sleep 没有放到子线程,直接放在主线程会卡 UI 的。
|
4
unixiya OP 谢谢大家啦,找到方法了,
Executors 创建可定时的线程 newScheduledThreadPool |