android - 从多个表的 SQLite DB 初始化应用程序?

标签 android list android-asynctask

在我的应用中,

第一个屏幕是初始屏幕,它显示 ProgressDialog 直到从数据库加载数据,然后将用户转到下一个主应用屏幕。

我正在使用 doInBackground 加载类别数据,并在 onPostExecute 中将其设置为 catgoryList。

我还想在应用程序初始化时加载一些类别 Item's

1) 可以执行两个 AsyncTasks,一个用于类别,另一个用于项目。

2) 或者可以在一个 AsyncTask 中完成。 doInBackground 目前只能返回一种类型的列表。

我如何更改它以从一个 AsyncTaskdoInBackground 返回 catgoryitem

谢谢

最佳答案

Is is fine to execute two AsyncTasks, one for category and other for items.

是的,这很好。

为了与您的主要 Activity 同步,您至少有两个解决方案:

  1. 按顺序运行 AsyncTasks。第一个 AsyncTask 将在其 onPostExecute() 中产生第二个。然后第二个任务开始主要 Activity 。

  2. 使用倒计时闩锁。从概念上讲,这只是一个整数,每个 AsyncTask 完成时都会递增。 Java 和 Android 在 CountDownLatch 中实现了这个想法.当达到倒计时时,您就可以开始主要 Activity 了。 This YouTube video对所涉及的概念进行了深入的描述。

关于android - 从多个表的 SQLite DB 初始化应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25707392/

相关文章:

java - 无法从类方法设置 Activity 的变量

android - 在主题中使用 fontFamily 属性时,Toast 使用 appcompat v26 引发 ArrayIndexOutOfBoundsException

android - 使用 DevicePolicyManager 锁定屏幕

java - 我无法让 Google Maps Android API v2 工作 : GoogleMap cannot be resolved to a type

list - 如何返回我在reduce函数中创建的JSON对象

python - 为什么在两个列表之间使用 "and"会给出第二个列表(而不是错误)?

c++ std::copy 类型转换为派生类可能吗?

android - 是否可以启动一个新的 Intent 并让它在单独的线程中运行?

java - 更改 Tabhost Android 上的图标

java - 如何通过 ksoap2 和 axis2 Web 服务正确使用 asynctask