このAsyncTaskを使用してSkypeページhttps://login.skype.com/json/validator?new_username=usernameを呼び出し、特定のSkype連絡先がすでに存在するかどうかを理解しています。
public class SkypeValidateUserTask extends AsyncTask<String, Void, String>{
protected String doInBackground(String...urls){
String response = "";
for(String url:urls){
DefaultHttpClient client = new DefaultHttpClient();
HttpGet httpGet = new HttpGet(url);
try{
HttpResponse execute = client.execute(httpGet);
InputStream content = execute.getEntity().getContent();
BufferedReader buffer = new BufferedReader(new InputStreamReader(content));
String s="";
while((s=buffer.readLine()) != null){
response+=s;
}
}catch(Exception ex){
ex.printStackTrace();
}
}
return response;
}
public void onPostExecute(String result){
String status="";
try{
JSONObject obj=new JSONObject(result);
status=obj.getString("status");
}catch(Exception ex){
ex.printStackTrace();
}
//Log.i("RISULTATO: ","STATO: "+status);
}
}
主なアクティビティは、Skype検証ユーザーの結果を取得するためにこのタスクを呼び出します。コードは次のとおりです。
String skype = "name.surname.example";
if(!skype.equalsIgnoreCase("")){
// check if the skype contact exists
SkypeValidateUserTask task = new SkypeValidateUserTask();
task.execute(new String[] {"https://login.skype.com/json/validator?new_username="+skype});
// here I need to obtain the result of the thread
}
私の問題は次のとおりです。
status
メインアクティビティでタスクの結果(文字列)を取得する必要があります。呼び出し後、
task.execute
メインアクティビティの次のコードは、asynctaskから返される結果を待たずに実行されます。