我遵循了很多我认为确实正确的指南和其他问题,但是我有一个无法解决的错误。
反对这条线
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;
}
}
}
更改
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();
}
活动: 类 updateTwitterStatus extends AsyncTask { 这就是 LogCat 06-05 18:00:26.696: E/AndroidRuntime(1516): 致命异常: AsyncTask #2 06-05 18:00:26.696: E/AndroidRuntime(1516): java.lang.RuntimeException: 执行 doInB
我目前正在创建一个严重依赖AsyncTask的电子邮件应用程序。 在应用程序中,有五个选项卡,每个选项卡中都有一个片段(收件箱,发件箱,已发送,已保存) 当每个选项卡/片段打开数据库连接时,已合并一个加载微调器。此微调器在onPreExecute中启动,但将保持旋转,直到调用onPostExecute。但是,在某些情况下,没有调用onPostExecute,也没有调用doInbackground。
我的想法是,我启动一个异步任务,从Tweeter获取状态...在这里之前一切正常...但是当我遇到一些特定的tweets时,我需要用服务器上的一些信息来修改它们,这里我将进行另一个网络操作,因为我需要等待,直到我从服务器上获取信息,我做: 这是从doInBackground()方法中的allready启动的AsyncTask启动的... 我知道我可以在AsyncTask中添加方法并在doInBac
早上好StackOver Flow Pros, 我需要一点帮助。我正在运行一个Android应用程序,该应用程序通过php脚本调用MySql数据库,当我运行该应用程序时,我得到一个由空指针异常导致的AsyncTask #1的致命异常错误。它说是在执行doInBackground时发生的。这是我从MyBringBack跟随的一个教程。我真的需要好好想想这件事,因为我已经想了好几天了。如果我删除/注释
在过去的几天里,我一直在使用这段代码,直到今天,它一直工作得很好,但由于某种原因,异步任务已经停止调用doInBackground方法。我尝试了这里建议的解决方案,Android SDK AsyncTask doInBackground没有运行(子类),但我得到了相同的结果。onPreExecute方法被调用,但我只剩下加载对话框。有没有人经历过类似的事情。我已经附上了我的代码副本。MyAsncT
我做了一个应用程序登录,一切都是正常的昨天,但今天android工作室给了我这个错误 {08-03 14:29:07.894 137 03-14015/Complete.Lyne.MyApplication E/AndroidRuntime:致命异常:AsyncTask#1进程:Complete.Lyne.MyApplication,PID:13703 java.lang.RuntimeExcep