如何从android中的异步任务返回值

前端之家收集整理的这篇文章主要介绍了如何从android中的异步任务返回值前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我创建了一个异步任务来调用我的服务器从DB获取数据.
我需要处理从http服务器调用返回的结果.
从我的活动我在许多地方调用异步任务.所以我不能使用成员变量来访问结果.有什么办法吗?
public Result CallServer(String params)
{

    try
    {
    new MainAynscTask().execute(params);
    }
    catch(Exception ex)
    {
        ex.printStackTrace();
    }
    return aResultM;//Need to get back the result

}  

    private class MainAynscTask extends AsyncTask<String,Void,Result> {


    @Override
    protected Result doInBackground(String... ParamsP) {    
        //calling server codes
        return aResultL;
    }       
    @Override
       protected void onPostExecute(Result result) {
          super.onPostExecute(result);
          //how i will pass this result where i called this task?
       }

解决方法

调用execute()方法后,尝试调用AsyncTask的get()方法.这对我有用

http://developer.android.com/reference/android/os/AsyncTask.html#get()

public Result CallServer(String params)
{
   try
   {
       MainAynscTask task = new MainAynscTask();
       task.execute(params);
       Result aResultM = task.get();  //Add this
   }
   catch(Exception ex)
   {
       ex.printStackTrace();
   }
   return aResultM;//Need to get back the result

} 
...
...

猜你在找的Android相关文章