Es gibt ähnliche Fragen wie diese, aber es hat mein Problem nicht gelöst. Meine on post execute läuft vor doInBackground, ich denke ich mache keine Arbeit in doInBackground, aber immer noch auf post execute läuft vor doInBackground.Below ist mein Code.DoInBackground wird nach der Ausführung aufgerufen
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");
}
}
}
es ist ziemlich offensichtlich, dass query.findInBackground asynchron ist und somit Rückkehr. null wird ausgeführt, bevor die Abfrage abgeschlossen ist –
so irgendwelche Vorschläge, ich glaube nicht, dass es Null zurückgibt und geben meine Ergebnisse im nächsten Versuch –
, also sollte ich doIn Hintergrund nicht verwenden? –