也有类似的问题,但它没有解决我的问题。我在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背景吗? –