我正在为我的大学做一个项目。但是我尝试在半小时内学习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) {

07-24 09:47
查看更多