我是android新手,我已经构建了一个使用大量Web服务的应用程序。我正在使用异步任务doInBackground()方法来调用webservices。
我的asyntask类是public,它是在一个单独的文件中编写的。 我没有使用onPostExecute来进行postwebservice操作, 相反,我正在创建一个字符串并返回。 然后在我的活动类中,我正在检查字符串并使用java bean打包数据。
因为异步任务以异步方式运行,所以依赖doInBackground方法返回是正确的。或者是否必须在onPostExecute中执行我的后期web服务操作。
请指导我为我的项目做正确的事情。感谢。
答案 0 :(得分:0)
您应该在onPostExecute
中完成所有后期web服务工作,因为此方法在主线程(UI)中执行,因此您可以更新UI。
查看http://developer.android.com/reference/android/os/AsyncTask.html
一个基本的例子(取自文档)
private class DownloadFilesTask extends AsyncTask<URL, Integer, Long> {
protected Long doInBackground(URL... urls) {
// Here you call your webservice and return the result
return totalSize;
}
protected void onPostExecute(Long result) {
// The result from doinbackground is passed as an argument
// here, so you update your UI from this method.
}
}
作为kaushik您还可以使用已定义的回调重用Asyntask,请检查以下问题:
答案 1 :(得分:0)
创建Interface
和回调方法以访问AsyncTask
类。
Activity
Context
访问AsyncTask
或Constructor
至AsyncTask
onPostExecute
中使用,将结果发送到您的Activity
回调方法教程
1。http://samir-mangroliya.blogspot.in/p/android-seperate-asynctask-class.html 2。http://www.androidsnippets.com/asyntask-in-android
3。http://www.brighthub.com/mobile/google-android/articles/82805.aspx