我正在为我的大学做一个项目。但是我尝试在半小时内学习AsyncTask。硬!
我制作了一个“西蒙”游戏,我需要使颜色闪烁一秒钟,另一秒钟闪烁。但是我不理解错误以及如何解决...
对不起,我的英语,我是巴西人。
那是我的AsyncTask类...
package com.example.genius;
import android.os.AsyncTask;
import android.widget.ImageView;
public class Queue extends AsyncTask<Void, Void, ImageView> {
protected ImageView doInBackground(Void... params) {
ImageView imagem;
int i = GameActivity.numCor;
imagem = GameActivity.cor;
if(i == 0)
imagem.setImageResource(R.drawable.greenlight);
if(i == 1)
imagem.setImageResource(R.drawable.redlight);
if(i == 2)
imagem.setImageResource(R.drawable.yellowlight);
if(i == 3)
imagem.setImageResource(R.drawable.bluelight);
return imagem;
}
protected ImageView onPostExecute() {
ImageView imagem;
int i = GameActivity.numCor;
imagem = GameActivity.cor;
try {
Thread.sleep(1000);
}catch(Exception e) {}
if(i == 0)
imagem.setImageResource(R.drawable.green);
if(i == 1)
imagem.setImageResource(R.drawable.red);
if(i == 2)
imagem.setImageResource(R.drawable.yellow);
if(i == 3)
imagem.setImageResource(R.drawable.blue);
return imagem;
}
}
以及我的GameActivity的方法,我将其称为AsyncTask类...
public void PiscarVerde() {
numCor = 0;
cor = (ImageView)findViewById(R.id.green);
Queue queue = new Queue();
final MediaPlayer mediaPlayer = MediaPlayer.create(this, R.raw.gr);
mediaPlayer.start();
queue.execute();
}
可以帮我吗?谢谢
最佳答案
您的onPostExecute签名错误,请更改:
protected ImageView onPostExecute() {
至
protected void onPostExecute(ImageView result) {
你也没有真正写错什么,问题出在哪里
顺便说一句在Java中,一个好的做法是在覆盖方法时添加@Override注解,如果您犯了错误,编译器将输出错误,例如:
@Override
protected void onPostExecute(ImageView result) {