如何为我的所有数据库调用安装一个AsyncTask

时间:2012-11-07 16:19:43

标签: android android-asynctask

我正在寻找在这里设计我的应用的正确方法。

我有5个活动,每个活动都调用一个单独的DB方法(更新,插入,删除..etc)。 我想知道,不是创建5个asynctask类,而是每个属于要调用的活动的私有类,是否可以创建一个asynctask类,以便在所有活动中实例化其对象?

在C ++中,你可以传递“一个完整的方法”来执行,这样我就可以创建一个assign任务并传递一个方法给它执行,但我不确定我能用Java做到这一点。或者你心目中最好的做法是什么?

谢谢

2 个答案:

答案 0 :(得分:1)

检查Runnable班级。

Runnable表示可以执行的任务。您需要实现它run()您可以将Runnable的实例传递给AsyncTask并使用doInBackground(...)方法执行。

可能有更好的方法可以做到这一点,但这是我现在唯一想到的事情。

答案 1 :(得分:1)

我不确定这是否适合您的账单,但我建议您创建一个IntentService,它会自动和异步地排队您的数据库/内容提供商读取和写入。

您可以编写单独的读取,写入和更新方法,这些方法将在IntentService的onHandleIntent方法中处理。意图服务保证

  • 数据库/ CP访问以异步方式完成
  • 连续数据库/ CP访问请求自动排队和处理
  • 服务自动停止/启动,无需管理生命周期
  • 即使应用程序进入后台,数据库/ CP读/写也已完成

对于ListView / Adapter访问,请考虑使用loaders