我正在创建一个广泛使用AsyncTask
来从数据库中检索数据的应用程序。我的问题是我有近12种不同的AsyncTasks
,它使我的代码变得更脏,更脏,还有一些任务在不同的活动之间共享。
我已经编写过的AsyncTask
部分有自己的java类文件,但它并不总是理想的,因为有些请求需要访问应用程序的资源(不能使用Resources.getSystem().getString(stringId)
,或者需要传递我需要修改的参数作为参数参数)
有没有推荐的方法来编写AsyncTask
类?
答案 0 :(得分:2)
在不知道具体情况的情况下很难说,但是如果你有一些做类似的任务,那么你可以在他们自己的文件中创建它们并创建带有你需要的参数的构造函数。
您可以将它们设置为接受Context
,Activity
对象等...然后使它们可重复使用。如果你有一些仅对某个Activity
是必需的,那么我会把它变成一个内部类,但如果它被多个Activities
使用,那么我会把它作为一个单独的类并使用构造函数采取所需的参数。
我的应用程序中有很多AsyncTasks
,这取决于您的需求。正如我所说,当需要Context
对象需要Context
时,可以将MyTask task = new MyTask(this); // for passing Context or any other params the constructor takes
task.execute();
传递给构造函数。就像传递它一样
public class MyTask extends AsyncTask<...> // add AsyncTask params
{
Context context;
public MyTask(Context c)
{
context = c;
}
// methods
}
在任务中
{{1}}