我想在启动屏幕期间从Parse.com检索我的数据。将AsyncTask结果传递给其他活动
我在DoInBackground方法中进行查询,并添加在对象向量(在另一个类中)中检索到的所有对象。
当移动到MainActivty时,所有数据都会丢失。
这里是我的代码:
private class loadDataTask extends AsyncTask<Void, Void, Vector<PartyObj>>{
@Override
protected Vector<PartyObj> doInBackground(Void... params)
{
ParseQuery query = new ParseQuery("partyObj");
query.whereExists("Name");
query.findInBackground(new FindCallback() {
@Override
public void done(List<ParseObject> mNameList, ParseException e) {
if (e == null) {
adapter.partyVector = new Vector<PartyObj>();
for(int i=0; i<mNameList.size(); i++){
PartyObject party = new PartyObject();
party.setIndex(i);
party.setmName(mNameList.get(i).getString("Name").toString());
adapter.partyVector.add(party);
}
}else {
Log.d("mNameList", "Error: " + e.getMessage());
}
}
});
return adpater.partyVector;
}
@Override
protected void onPostExecute(Vector<PartyObj> result) {
progressDialog.dismiss();
setContentView(R.layout.activity_main_menu);
}
}
嗨,britzl,感谢您的回复。 它在完成MainActivity之前完成查询。 我已经修复了我的代码中的一些错误,现在我的问题是我不知道如何将onPostExecute方法的结果中的对象传递给其他Activity(我的listAdapter活动)。 –
我很抱歉,但我不明白在进入主要活动之前它是如何完成查询的。我会更新我的答案以解释我对此的看法。 – britzl
是啊......你是对的...... :) 我用10秒的线程在OnCreate上运行findInBackground,它都很好。 2个其他问题: 1.如何将我的矢量对象传递到我的listAdapter? 2.如何在findInBackground方法所需的确切时间长度内运行线程? 谢谢... –