【问题标题】:Asynctask and doInBackground errorsAsynctask 和 doInBackground 错误
【发布时间】:2013-11-22 15:56:41
【问题描述】:

我遵循了一些我认为完全正确的指南和其他问题,但我有一个无法修复的错误。

反对这条线

private class loadNotams extends AsyncTask<String, Void, Void> {

我收到了这个错误

MainActivity.loadNotams 类型必须实现继承的抽象方法 AsyncTask.doInBackground(String...)

反对这条线

protected Void doInBackground(String airfield) {

我收到此错误:

MainActivity.loadNotams 类型的方法 doInBackground(String) 必须重写或实现超类型方法

这里的任何想法都是我的全部代码:

import java.io.IOException;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import android.os.AsyncTask;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.TextView;

public class MainActivity extends Activity {

TextView testText;
Notam[] notamList = new Notam[100];

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    // Document doc = null;

    testText = (TextView) findViewById(R.id.textview);

    new loadNotams().execute("ybmk");
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}

private class loadNotams extends AsyncTask<String, Void, Void> {

    @Override
    protected Void doInBackground(String airfield) {
        Document doc = null;

        try {
            doc = Jsoup
                    .connect(
                            "https://pilotweb.nas.faa.gov/PilotWeb/notamRetrievalByICAOAction.do?method=displayByICAOs")
                    .data("retrieveLocId", airfield)
                    .data("formatType", "ICAO")
                    .data("reportType", "REPORT")
                    .data("actionType", "notamRetrievalByICAOs")
                    // .userAgent("Mozilla")
                    // .cookie("auth", "token")
                    .timeout(3000).post();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        int counter = 0;
        Elements pre = doc.select("pre");

        for (Element link : pre) {

            // get the value from href attribute
            System.out.println("text : " + link.text());
            notamList[counter++] = new Notam(airfield, link.text()
                    .substring(0, 8), link.text().substring(11,
                    link.text().length()));

        }
        counter--;
        while (counter >= 0) {
            System.out.println("class : " + notamList[counter].identifier
                    + "#" + notamList[counter].notamText);
            counter--;
        }
        testText.setText(notamList[0].notamText);
        return null;
    }
}

}

【问题讨论】:

    标签: java android android-asynctask jsoup


    【解决方案1】:

    改变

     protected Void doInBackground(String airfield)
    

     protected Void doInBackground(String... airfield)
    

     protected Void doInBackground(String[] airfield)
    

    因为 doInBackground() 方法需要字符串数组作为参数

    也改成

       try {
            doc = Jsoup
                    .connect(
                            "https://pilotweb.nas.faa.gov/PilotWeb/notamRetrievalByICAOAction.do?method=displayByICAOs")
                    .data("retrieveLocId", airfield[0])
                    .data("formatType", "ICAO")
                    .data("reportType", "REPORT")
                    .data("actionType", "notamRetrievalByICAOs")
                    // .userAgent("Mozilla")
                    // .cookie("auth", "token")
                    .timeout(3000).post();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    

    【讨论】:

    • 感谢戈帕尔。像魅力一样工作。堆栈溢出的岩石!
    【解决方案2】:

    使其成为可变参数方法

    protected Void doInBackground(String... airfield)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多