我的应用程序具有 FTP 功能,现在我想为各种操作(连接、下载、上传、文件列表等)实现一个 ProgressDialog 我在堆栈上找到了这个 fragment ,它似乎是一个很好的起点。
public class LoadData extends AsyncTask<Void, Void, Void> {
ProgressDialog progressDialog;
//declare other objects as per your need
@Override
protected void onPreExecute()
{
progressDialog= ProgressDialog.show(FTPConnector.this, "Please wait for ","Process Description Text", true);
//do initialization of required objects objects here
};
@Override
protected Void doInBackground(Void... params)
{
//do loading operation here
return null;
}
@Override
protected void onPostExecute(Void result)
{
super.onPostExecute(result);
progressDialog.dismiss();
};
}
我已将其实现为 FTPConnector 类的子类,其中包含用于连接、下载、上传、列表文件、重命名、删除的各种方法。我需要为每个 FTP 操作创建 ASyncTask 的子类吗?如果没有我该怎么办?
最佳答案
首先,我的印象是,使用 AsyncTask 作为 Activity 的子类是不受欢迎的,因为任务将保留对启动它的 Activity 的引用,这可能会导致问题。我通常使用 AsyncTask 作为它自己的类,并在执行它的 Activity 的上下文中传递。你应该调查一下。
其次,您可以为每个服务器事务执行不同的任务。我想这取决于它们的数量或您的应用程序有多复杂。除此之外,您可以在 doInBackground 方法中使用一个带有 switch 语句的类,并传入一个字符串标记作为可变参数之一(假设您的任务仅采用字符串作为初始参数)。这看起来既麻烦又丑陋。
我可能只会为每笔交易执行一项任务。
关于java - 我需要使用多个 AsyncTask 子类吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16702349/