나는 안드로이드를 처음 접했다. 내가 뭘하고 싶은지 그냥 Asynctask에 URL을 전달하고 반환 상태 코드 SC_OK 여부를 확인합니다. 이 메소드는 상태 코드 SC_OK가 반환되면 true를 반환하고 다른 상태 코드가 있으면 false를 반환해야합니다.안드로이드에서 Asynctask에서 부울 값을 반환
class checking extends AsyncTask<String, Void, Boolean> {
@Override
protected Boolean doInBackground(String... params) {
// TODO Auto-generated method stub
Boolean a;
HttpClient client = new DefaultHttpClient();
HttpGet httpGet = new HttpGet(l1);
HttpResponse response;
try {
response = client.execute(httpGet);
StatusLine statusLine = response.getStatusLine();
int statusCode = statusLine.getStatusCode();
if (statusCode != HttpStatus.SC_OK) {
Toast.makeText(getApplicationContext(),"No", Toast.LENGTH_LONG).show();
a= false;
}
else {
Toast.makeText(getApplicationContext(),"Yes", Toast.LENGTH_LONG).show();
a= true;
}
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally{
return false;
}
}
@Override
protected void onPostExecute(Boolean result) {
}
}
그리고 뭐가 문제입니까? – Math
'finally' 블록이 항상 호출되므로 항상 false를 반환합니다. 어쩌면이 블록을 제거하고 return a를 추가하려고합니다. 결국? –
작동하지 않았지만 제대로 작동합니다. – AisneT