我想制作一个像Timberman game这样的进度条。 这是我的Java代码:
boolean flagProgress=false;
private void click() {// click 1 button
if(!flagProgress){
taskProgress=new TaskProgress();
AsyncTaskCompat.executeParallel(taskProgress,
500+10);
}
else {
taskProgress.cancel(true);
int progress=progressBar.getProgress();
taskProgress=new TaskProgress();
AsyncTaskCompat.executeParallel(taskProgress,
progress+10);
}
}
class TaskProgress extends AsyncTask<Integer, Integer, Void> {
@Override
protected void onPostExecute(Void aVoid) {
super.onPostExecute(aVoid);
doGameOver();
}
@Override
protected void onPreExecute() {
super.onPreExecute();
flagProgress=true;
}
@Override
protected void onProgressUpdate(Integer... values) {
super.onProgressUpdate(values);
progressBar.setProgress(values[0]);
}
@Override
protected Void doInBackground(Integer... params) {
if(params[0]>1000)// max 1000
params[0]=1000;
setProgress(params[0]);
for(int i=params[0];i>=0;i--) {
if(isCancelled())
break;
publishProgress(i);
SystemClock.sleep(100);
}
return null;
}
@Override
protected void onCancelled() {
super.onCancelled();
}
}
一切顺利(我的进度栏看起来像Timberman游戏中的进度条),直到我玩了20次或更多游戏(游戏结束再玩)。我的进度条停止了,有时声音效果没有播放。注意:我还有另一个AsyncTask,所以我使用AsyncTaskCompat.executeParallel。 谁能帮我? :(。