我想在啓動屏幕期間從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方法所需的確切時間長度內運行線程? 謝謝... –