我試圖解決這個問題:我有一個從的AsyncTask擴展一個類,即執行一些HTTP方法是這樣的:的AsyncTask沒有回調接口
public class RESTManager extends AsyncTask<Object, Object, String>
{
public RESTManager(String url, MethodTypes myMethod,ICallbackHandler hndl, String restMethod)
{
initialize();
}
private String doGET()
{
}
private String doPOST()
{
}
@Override
protected String doInBackground(Object... params)
{
}
@Override
protected void onPostExecute(String result)
{
}
}
所以,從活動我這樣做:
RESTManager webService = new WSManager(URL, MethodTypes.REGISTER, params, this, WSManager.GET_METHOD);
webService.execute();
然後活性接收在callbak方法的響應(因爲活動實現該接口):
public void response(String response)
{
// some process
}
這工作正常,但我的問題是,我希望答案出現在一些函數相同的調用,然後該函數調用.execute方法,例如。
// This is a new class
public class MyWebServices()
{
public User getUser(int id)
{
User myUser;
RESTManager webService = new WSManager(URL, MethodTypes.REGISTER, params, this, WSManager.GET_METHOD);
webService.execute();
// BUT I WANT TO RETURN FROM HERE THE CALL FROM THE ACTIVITY....LIKE
return myUser;
}
}
因此,從活動,這將是:
MyWebServices myService = new MyWebServices();
User usr = myService.getUser(id);
希望已瞭解了我試圖描述,謝謝!
使用Future對象。 – alphazero 2012-04-17 15:05:25
對不起,我的無知是什麼,未來的目標是什麼? – skabo 2012-04-17 15:14:04
不需要道歉。這是S.O. http://docs.oracle.com/javase/6/docs/api/java/util/concurrent/Future.html – alphazero 2012-04-17 15:17:45