也有類似的問題,但它沒有解決我的問題。我在post執行之前運行doInBackground,我想我沒有在doInBackground做任何UI工作,但仍然在後執行運行之前doInBackground.Below是我的代碼。doInBackground在執行後調用
sumbit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String mail = resMail.getText().toString();
String id = resUniq.getText().toString();
new Reset_Pass_Task().execute();
}
});
}
private class Reset_Pass_Task extends AsyncTask<Void,Void,Void> {
@Override
protected Void doInBackground(Void... params) {
try{
ParseQuery<ParseUser> query = ParseUser.getQuery();
query.whereEqualTo("username", "[email protected]");
query.findInBackground(new FindCallback<ParseUser>() {
@Override
public void done(List<ParseUser> objects, ParseException e) {
if (e==null){
for(ParseUser singleobject:objects){
name23 = (String) singleobject.get("uniqueId");
}
}else {
Log.i("abc",e.toString());
}
}
});
} catch (Exception e){
Log.i("xys",e.toString());
}
return null;
}
@Override
protected void onPostExecute(Void aVoid) {
if (name23!=null){
Log.i("def",name23);
}else {
Log.i("ijk","null");
}
}
}
這是很明顯的,query.findInBackground是異步的,因此回報。 null在查詢完成之前執行 –
所以有什麼建議,我不認爲它返回null,並給我的結果在下次嘗試 –
所以我不應該使用doIn背景嗎? –