我有一个初始化游戏的活动,它可以从多个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操作?
答案 0 :(得分:3)
你可以将参数传递给AsyncTask,甚至更多,如果你使用嵌套的clases,你可以使用AsyncTask类中的全局变量,通过使用上面提到的或两个提到的辅助,你应该能够使用同一个类并根据您传递的参数执行不同的操作。我认为没有必要定义多个AsyncTasks。
您将需要在每个活动中定义AsyncTask。
我写了 need ,因为你真的不需要,但是这样做很方便,并且它易于读/写代码,因为AsyncTask仅与活动相关联。这当然是你使用嵌套的clases,我认为没有必要为AsyncTask编写一个单独的类文件。