Vig*_*esh 7 android android-asynctask
我创建了一个异步任务来调用我的服务器从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?
}
Run Code Online (Sandbox Code Playgroud)
kla*_*anm 15
调用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
}
...
...
Run Code Online (Sandbox Code Playgroud)
我可以建议两种方法 -
onPostExecute(Result)在AsyncTask。请参阅http://developer.android.com/reference/android/os/AsyncTask.html#onPostExecute(Result)
发送广播并附加结果。
AsyncTask是一个异步任务,因此将结果返回给调用者是没有意义的。onPostExecute()而是像将值设置为等那样处理结果TextView。或者发送广播,以便其他侦听器可以处理结果。
| 归档时间: |
|
| 查看次数: |
25423 次 |
| 最近记录: |