如何将参数传递到AsyncTask <arg1,arg2,=“” arg3 =“”> AsyncTask Android

时间:2019-03-07 07:29:47

标签: android android-asynctask

我正在开发一个应用程序,该应用程序第一次有超过8000个数据要从服务器获取,然后将其保存到本地SQLite数据库,然后每隔两次它只会检查较新的更新并将其保存。

但是问题在于此应用程序由于其第一次存储数据而存在for循环,因此在第一次执行时崩溃。因此,我当时正在考虑实现AsyncTask,但必须传递

Response<List<POJOGetLatestData>> or List<POJOGetLatestData> get_all_latest_data

响应。虽然我是新手,但我一直在搜索有关此类参数传递的文档和参考,但无法找到好的资源。

我该怎么做?还有其他方便的方法吗?

这是我要在AsyncTask中实现的代码

private void saveToDatabase(Response<List<POJOGetLatestData>> response ,List<POJOGetLatestData> get_all_latest_data) {
    if (response.code() == 200 &&  get_all_latest_data != null) {

        flag=false;

        for (int i = 0; i < get_all_latest_data.size(); i++) {
             flag = db.checkWord( Integer.valueOf(get_all_latest_data.get(i).getId()));
            ContentValues wordValue = new ContentValues();
            wordValue.put("id",Integer.valueOf(get_all_latest_data.get(i).getId()));
            wordValue.put("Correct", get_all_latest_data.get(i).getRightWord().toString());
            wordValue.put("Wrong", get_all_latest_data.get(i).getWrongWord().toString());
            wordValue.put("date_time", get_all_latest_data.get(i).getLastUpdate().toString());
              if(flag){

                db.updateWords(wordValue,Integer.valueOf(get_all_latest_data.get(i).getId()));
            }
           else
            {
                db.insertWords(wordValue);
            }

        }

    }
}

数据库查询::

  public boolean insertWords(ContentValues values) {

    db.insert("tbl_word_data", null, values);


    return true;
}

public boolean updateWords(ContentValues values, int id) {
    db.update("tbl_word_data", values, "id="+id, null);

    return true;
}

错误日志:: enter image description here

0 个答案:

没有答案