android ListView后台处理

标签 android android-listview

在我的 Android 2.2 + 应用程序中,我将使用 ListView 并与现有的 XmlRpc 服务器通信。用户将手动添加项目到 ListView,应用程序将从 xmlrpc 服务器接收有关项目的附加信息。

应用程序将执行以下 Activity :

  1. 测试与 xmlrpc 服务器的连接
  2. 从服务器检索信息以将项目手动添加到 ListView
  3. 从服务器检索 ListView 中所有项目的信息
  4. 向服务器发送项目列表

我计划实现的这些 Activity 是:

  1. onCreate() 中,我将使用 AsyncTask 调用 xmlrpc 函数,然后我将在应用程序的状态栏中显示 OK/ERROR

  2. 按下 ADD 按钮后,我将使用 AsyncTask 调用 xmlrpc 函数来获取有关商品的信息(名称、价格、图片),然后我将更新刚刚添加的商品。

  3. 按下 GET ALL 按钮后,我将使用 AsyncTask 调用 xmlrpc 函数来获取列表中所有项目的信息(名称、价格、图像),然后我将更新所有项目项目。

  4. 按下 SEND 按钮后,我将使用 IntentService 调用 xmlrpc 函数,然后在对话框中显示结果。

AsyncTaskIntentService 是否适合我的需求? 谢谢。

最佳答案

所有 Internet 通信都应在单独的后台线程中进行,而不是 HOG UI THREAD,否则您的应用程序将被 Android 操作系统杀死。 ListView 不会直接更新,而是通过为其提供数据和 View 的适配器进行更新。假设您已经创建并配置了适当的适配器,工作流将如下所示: - rpc 调用在一些后台线程中处理 - 他们更新您适配器中的数据存储 - 他们通过 notifyDatasetChanged() 发出信号(来自 UI 线程) - ListView 要求适配器提供所有可见列表项的 View - 您的界面已更新。

当您留在同一个 Java 进程中时,您不需要弄乱 Intent - 标准多线程就可以了。

关于android ListView后台处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12814745/

相关文章:

android - 接收不同标准的多个推送通知并根据该标准更新通知

java - 无论接收 Activity 的状态如何,都获取 Intent 数据

android - 如何将 ListView 滚动到特定的 id 并将该项目设置为已选中?

android - 如何将 SlidingPaneLayout 的 Listview 部分的宽度设置为 100%

java - 在Android中更新CSV文件后更新Listview

android - Oreo 更新后出现 INSTALL_FAILED_NO_MATCHING_ABIS 错误

Android 更新导致错误 : Error:java. nio.file.AccessDeniedException :/home/path/. android/build-cache.lock

android - 在 Graphview 库中使用日期

android - 滑动删除列表项

android - 如何为 ListView 中的项目设置 OnTouchListener