Java task类需要自己销毁_java-循环AsyncTask类必须声明为抽象或实现抽...

在尝试遍历数据库记录并使用AsyncTask执行网络请求时,遇到了`Class FetchWebsiteData must either be declared abstract or implement abstract method doInBackground(params...) in 'AsynTask'`的错误。文章详细展示了如何在Java中创建一个AsyncTask子类来执行数据库操作、网络请求和UI更新,包括使用Jsoup解析HTML和JSON数据。在执行过程中,还涉及了数据库的读写操作以及条件判断。
摘要由CSDN通过智能技术生成

我试图遍历表中的一些记录,并为每个记录使用一个值作为参数;

>获取网页以解析一些html

>获取一些要解析的JSON数据并从中获取几个值

这些都靠自己完美地工作,但是我不能让它们都在AsyncTask中工作.我在这里有代码.我知道我可能还很遥远,但是如果有人可以轻推我的想法如何,我将非常感激.

在第一行

private class FetchWebsiteData extends AsyncTask {

我懂了

Class FetchWebsiteData must either be declared abstract or implement abstract method doInBackground(params...) in 'AsynTask'

作为错误消息,并带有红色下划线.

private class FetchWebsiteData extends AsyncTask {

@Override

protected void onPreExecute() {

super.onPreExecute();

mProgressDialog = new ProgressDialog(summary.this);

mProgressDialog.setMessage("Loading...");

mProgressDialog.setIndeterminate(false);

mProgressDialog.show();

}

protected String doInBackground(String urls3, String result3) {

helper = new TaskDBHelper(summary.this);

SQLiteDatabase sqlDB = helper.getReadableDatabase();

Cursor dataCount = sqlDB.rawQuery("select TASK from " + TaskContract.TABLE, null);

ArrayList temp = new ArrayList();

dataCount.moveToFirst();

do {

temp.add(dataCount.getString(0));

} while (dataCount.moveToNext());

dataCount.close();

StringBuilder sb = new StringBuilder();

for (String s : temp)

{

wallBal = s;

//--------------------------------------------

try {

Document document = Jsoup.connect(URL+wallBal).get();

Document doc = Jsoup.parse(document.text());

balance = new Double(doc.text());

helper = new TaskDBHelper(summary.this);

SQLiteDatabase sqlDB2 = helper.getWritableDatabase();

String sql9 = String.format("UPDATE " + TaskContract.TABLE + " SET " + TaskContract.Columns.OLDBAL + " = " + TaskContract.TABLE + "." + TaskContract.Columns.BAL + " WHERE task='" + wallBal + "'");

sqlDB2.execSQL(sql9);

String sql = String.format("UPDATE " + TaskContract.TABLE + " SET " + TaskContract.Columns.BAL + " = " + balance + " WHERE task='" + wallBal + "'");

sqlDB2.execSQL(sql);

Cursor dataCount2 = sqlDB.rawQuery("select " + TaskContract.Columns.OLDBAL + " from " + TaskContract.TABLE + " WHERE " + TaskContract.Columns.TASK + " = '" + wallBal + "'", null);

dataCount2.moveToFirst();

oldbalance = dataCount2.getDouble(0);

if(balance != oldbalance) {

make();

}

mProgressDialog.dismiss();

JSONObject json3 = new JSONObject(result3);

String str = "";

JSONArray articles3 = json3.getJSONArray("data");

str += "articles length = "+json3.getJSONArray("data").length();

str += "

--------

";

str += "names: "+articles3.getJSONObject(0).getString("MasternodeIP");

str += "

--------

";

MNIP = articles3.getJSONObject(0).getString("MasternodeIP");

Sts = articles3.getJSONObject(0).getString("ActiveCount");

helper = new TaskDBHelper(summary.this);

SQLiteDatabase sqlDB22 = helper.getWritableDatabase();

String sql91 = String.format("UPDATE " + TaskContract.TABLE + " SET " + TaskContract.Columns.IP + " = '" + MNIP + "' WHERE task='" + task + "'");

sqlDB22.execSQL(sql91);

String sql10 = String.format("UPDATE " + TaskContract.TABLE + " SET " + TaskContract.Columns.STATUS + " = '" + Sts + "' WHERE task='" + task + "'");

sqlDB22.execSQL(sql10);

updateUI();

} catch (JSONException | IOException e) {

e.printStackTrace();

}

//-----------------------------------------------------

}

//--------------------------------------------------------------------

//return null;

return GET(urls3);

}

protected void onPostExecute(Void result) {

updateUI();

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值