Asynctask和doInBackground错误

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

反对这条线

private class loadNotams extends AsyncTask { 

我收到了这个错误

MainActivity.loadNotams类型必须实现inheritance的抽象方法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 { @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; } } 

}

更改

  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(); } 

使它成为一个可变参数方法

 protected Void doInBackground(String... airfield)