Android AsyncTask - 每个数据库操作一个子类?

时间:2010-12-09 16:35:42

标签: android sqlite android-asynctask

我有一个初始化游戏的活动,它可以从多个SQLite表中进行多次选择和插入。

我正在尝试理解AsyncTask,但是,从我到目前为止阅读的所有示例中,我想知道我是否必须为我需要做的每一个不同的数据操作创建AsyncTask的子类?

例如,我的NewGame活动执行以下操作:

1) Insert new player record into PLAYER table
2) Insert new player's pet record into PET table
3) Select cursor of n records from INVENTORY
4) Insert array of ranomly chosen inventory items into PLAYER_OWNED table
5) ....more things of a similar nature

对于各种各样的事情,还会有更多的选择和插入,因此每个人都有一个单独的子类会变得疯狂。更不用说这个游戏将有大约8个活动,所有活动都严重依赖于数据库读写。

所以,基本上,我如何最好地使用AsyncTask来执行许多不同的SQLite操作?

1 个答案:

答案 0 :(得分:3)

你可以将参数传递给AsyncTask,甚至更多,如果你使用嵌套的clases,你可以使用AsyncTask类中的全局变量,通过使用上面提到的或两个提到的辅助,你应该能够使用同一个类并根据您传递的参数执行不同的操作。我认为没有必要定义多个AsyncTasks。

您将需要在每个活动中定义AsyncTask。

我写了 need ,因为你真的不需要,但是这样做很方便,并且它易于读/写代码,因为AsyncTask仅与活动相关联。这当然是你使用嵌套的clases,我认为没有必要为AsyncTask编写一个单独的类文件。