AndroidでHttpAPIを作成しようとしています。AsyncTaskを使用してWebサービスへの呼び出しを実行しています。UIの更新には興味がありません。代わりに、アプリケーションロジックで使用するデータだけが必要です。これは私がこれまでに持っているものです:
public class DataManager{
public static String result;
public DataManager ()
{
}
public String get ()
{
User user = new User ();
user.execute("http://someuri/service/users/id/21001");
return user.getResult();
}
}
public class User extends AsyncTask <String,Void,String>{
private String result;
@Override
protected String doInBackground(String... arg0)
{
HttpClient client = new DefaultHttpClient();
HttpGet get = new HttpGet (arg0[0]);
try
{
HttpResponse response = client.execute (get);
if (response.getStatusLine().getStatusCode () == 200)
{
HttpEntity entity = response.getEntity();
return EntityUtils.toString(entity);
}
}
catch (ClientProtocolException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(String result) {
// TODO Auto-generated method stub
super.onPostExecute(result);
this.result = result;
}
public String getResult ()
{
return result;
}
}
私は典型的な呼び出しを次のようにしたいと思います。
DataManager manager = new DataManager ();
String value = manager.get ();
しかし、これを実行すると、nullに戻ります。これを引き起こしている原因と、このコードをリファクタリングして目的の動作を得るにはどうすればよいですか。