【发布时间】:2016-03-26 17:50:02
【问题描述】:
我正在尝试从我的方法 checkInvited() 返回一个布尔值。此方法包含一个扩展 AsyncTask<Void,Void,String> 的类。这是完整的方法
public boolean checkInvited(String player_id){
final String g_id = game_id;
final String fr_id = player_id;
class CheckInvited extends AsyncTask<Void, Void, String>{
boolean invited;
ProgressDialog loading;
@Override
protected void onPreExecute(){
super.onPreExecute();
loading = ProgressDialog.show(InviteFriends.this,"Checking Invite Status","Please Wait...",false,false);
}
@Override
protected void onPostExecute(String s){
super.onPostExecute(s);
loading.dismiss();
JSON_STRING = s;
if (s.trim().equals("0")){
invited = false;
} else {
invited = true;
}
}
@Override
protected String doInBackground(Void... params){
HashMap<String, String> hashMap = new HashMap<>();
hashMap.put(Config.KEY_INVITES_GAME_ID, g_id);
hashMap.put(Config.KEY_INVITES_PLAYER_ID, fr_id);
RequestHandler rh = new RequestHandler();
String s = rh.sendPostRequest(Config.URL_CHECK_INVITED, hashMap);
return s;
}
}
CheckInvited ci = new CheckInvited();
ci.execute();
return ci.invited;
}
该方法调用sendPostRequest()的预定义方法,通过php联系mySql数据库。我的问题是让checkInvited() 方法返回真或假。目前,只有当我知道至少有一个结果应该为真时,它才会返回假。
提前感谢您的帮助。
【问题讨论】:
-
AsyncTask的定义是异步运行。您在 AsyncTask 完成(甚至可能开始)执行之前返回 false
-
请不要在方法中定义类...
标签: java android android-studio