시작 화면에서 Parse.com에서 데이터를 검색하려고합니다.AsyncTask 결과를 다른 액티비티로 전달
DoInBackground 메서드에서 쿼리를 만들고 개체 벡터 (다른 클래스에 있음)에서 검색 한 모든 개체를 추가하고 있습니다.
MainActivty로 이동하면 모든 데이터가 손실됩니다. 모든 잘못 AsyncTask를를 사용하는 것처럼
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로 이동하기 전에 쿼리를 완료합니다. 내 코드에서 일부 오류가 수정되었으며 내 문제는 이제 다른 활동 (내 listAdapter 활동)에 onPostExecute 메서드의 결과에서 가져온 개체를 전달하는 방법을 모른다는 것입니다. –
죄송하지만 기본 활동을 시작하기 전에 쿼리를 완료하는 방법을 알 수 없습니다. 나는 내 생각을 설명하기 위해 나의 대답을 업데이트 할 것이다. – britzl
예 ... 당신이 옳았어요 ... :) 10 초 스레드로 OnCreate에서 findInBackground를 실행하면 모두 좋습니다. 2 질문 더 : 1. 내 벡터 객체를 내 listAdapter에 어떻게 전달합니까? 2. findInBackground 메서드에 필요한 정확한 시간 길이의 스레드를 어떻게 실행할 수 있습니까? 감사합니다 ... –