我有一个0和1的数组,我每次尝试播放一个mp3文件#34; 1"在我的阵列中,当我有一个" 0"我希望应用程序等一下。我尝试了这个代码,它可以工作,但是当我进入循环时,应用程序被阻止了。还有其他方法吗?
while(j < c.size()){
if(c.get(j)==1) {
mediaPlayer.start();
SystemClock.sleep(1000);
}
else SystemClock.sleep(1000);
j++;
}
答案 0 :(得分:0)
在睡眠过程中你会阻塞主线程,在另一个使用AsyncTask的情况下执行它,例如@ vilpe89说。 https://developer.android.com/reference/android/os/AsyncTask.html
答案 1 :(得分:0)
尝试使用AsyncTask,您可以在后台播放音乐。 在while中,将布尔值连接到按钮以更改标志并调用方法。
pd:sry my bad english xD
public void mAsyncTask() {
new AsyncTask<Void, Void, Void>() {
@Override
protected Void doInBackground(Void... params) {
while (--Here put a boolean--) {
mediaPlayer.start();
try {
Thread.sleep(--put here a pause in millisec--);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
return null;
}
}.execute();
}