我正在使用 AsyncTask 在单独的线程中下载和解析数据,我需要将 loadXml 返回的值传递到数据库中。
问题是我无法实例化数据库,因为它需要一个上下文,而我的 DownloadXmlTask 与实例化它的活动类位于一个单独的类中。
如果我无法实例化数据库类,如何使用将值传递到数据库中?
代码示例:
public class DownloadXmlTask extends AsyncTask<String,Void,Void>{
public static final String TAG = "VotingApp";
@Override
protected Void doInBackground(String... urls) {
try {
// Get the parsed list of Candidate objects
ArrayList<Candidate> candidatesList = loadXml(urls[0]);
CandidatesDatabaseHelper db = new CandidatesDatabaseHelper(getApplicationContext()); <---- ERROR (I know I can't use getApplicationContext() here)
// Insert the candidates into the database
for(Candidate c : candidatesList){
//NOT FINISHED
}
} catch (IOException e) {
Log.d(TAG, "Error " + e);
} catch (XmlPullParserException e) {
Log.d(TAG, "Error " + e);
}
Log.d(TAG, "NOT WORKING");
return null;
}