使用SOAP与Android实现建议

时间:2011-08-28 17:42:29

标签: android ksoap2

我尝试使用Android连接到SOAP服务,并在SO和其他网站上阅读有关使用kso​​ap2的信息。

我也在阅读Android in Action,它表明UI线程中任何长时间运行的代码(> 5秒)都应该在Handler或Service中完成。是否有关于何时使用这些的建议,而不是在Activity中使用它。 SO和Internet上的许多示例都在Activity内部进行SOAP处理(在生命周期方法或事件处理程序中)但在我的情况下,我知道某些SOAP方法需要花费超过5秒的时间。

何时使用Android处理程序或服务的任何指针或建议都会非常有用。

3 个答案:

答案 0 :(得分:2)

我建议使用AsyncTask。在这里查找:http://developer.android.com/reference/android/os/AsyncTask.html

基本上,您可以在doInBackground方法中执行SOAP调用,该方法在后台线程中执行,您可以使用onPostExecute()方法更新UI,这样就可以避免可怕的ANR( Android Not Responding)错误。

答案 1 :(得分:2)

如果UI依赖于同一时间内的响应,那么我建议您使用AsyncTask类。 AsyncTask是为这种长期操作而设计和推荐的。假设服务器的响应与UI密切相关,而不是在长时间操作正在进行时不能保持UI冻结。

您可以在后台线程上运行的doInBackground()方法中执行这些长事务,必须注意,在此方法中,您无法更新UI,并且在onPostExecute() / {{1}使用服务器的响应更新UI。

如果你还没有介绍过,请阅读更多有关AsynTask的内容:

http://developer.android.com/reference/android/os/AsyncTask.html

不要忘记onProgressUpdate()

答案 2 :(得分:0)

有关AsyncTask的示例,请查看this

我建议您在开始实施之前正确地参考AsyncTask的Android开发者页面。

一切顺利

干杯