在我的 Android 2.2 + 应用程序中,我将使用 ListView
并与现有的 XmlRpc
服务器通信。用户将手动添加项目到 ListView
,应用程序将从 xmlrpc 服务器接收有关项目的附加信息。
应用程序将执行以下 Activity :
- 测试与 xmlrpc 服务器的连接
- 从服务器检索信息以将项目手动添加到
ListView
- 从服务器检索
ListView
中所有项目的信息 - 向服务器发送项目列表
我计划实现的这些 Activity 是:
在
onCreate()
中,我将使用AsyncTask
调用 xmlrpc 函数,然后我将在应用程序的状态栏中显示 OK/ERROR按下 ADD 按钮后,我将使用
AsyncTask
调用 xmlrpc 函数来获取有关商品的信息(名称、价格、图片),然后我将更新刚刚添加的商品。按下 GET ALL 按钮后,我将使用
AsyncTask
调用 xmlrpc 函数来获取列表中所有项目的信息(名称、价格、图像),然后我将更新所有项目项目。按下 SEND 按钮后,我将使用
IntentService
调用 xmlrpc 函数,然后在对话框中显示结果。
AsyncTask
和 IntentService
是否适合我的需求?
谢谢。
最佳答案
所有 Internet 通信都应在单独的后台线程中进行,而不是 HOG UI THREAD,否则您的应用程序将被 Android 操作系统杀死。 ListView 不会直接更新,而是通过为其提供数据和 View 的适配器进行更新。假设您已经创建并配置了适当的适配器,工作流将如下所示: - rpc 调用在一些后台线程中处理 - 他们更新您适配器中的数据存储 - 他们通过 notifyDatasetChanged() 发出信号(来自 UI 线程) - ListView 要求适配器提供所有可见列表项的 View - 您的界面已更新。
当您留在同一个 Java 进程中时,您不需要弄乱 Intent - 标准多线程就可以了。
关于android ListView后台处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12814745/