如何检索AsyncTask的运行实例?

时间:2012-06-23 14:25:51

标签: android android-asynctask

我正在开发的应用程序中实现类似DownloadManager的功能。我使用AsyncTask将下载推送到后台 这个AsyncTask位于一个名为DownloadService的服务中,该服务在我的一个活动中实例化。因此,这意味着可以从活动的不同实例开始多次下载 我想要做的是进行一项特定的活动,让我可以让所有当前正在运行的下载显示他们的进度,并有按钮暂停或恢复下载。

2 个答案:

答案 0 :(得分:1)

如果你想要这样的东西,你可以在数组中存储所有在服务中启动的异步任务,然后用http://developer.android.com/reference/android/os/AsyncTask.html#getStatus%28%29检查它们的状态。

希望这有帮助!

答案 1 :(得分:0)

而不是在Activity中包含DownloadService,而是将其作为类成员放在app Application类中,因为每个应用程序只存在一个此类的实例。然后,您可以通过调用((YourApplication)getApplication()).getDownloadService()在您的活动中检索它。你必须:

  1. 创建一个扩展Application的类,比如YourApplication
  2. 在清单文件的<application>标记中将其声明为android:name="YourApplication"
  3. 通过调用((YourApplication)getApplication()).someMethodToGetDownloadService()
  4. 在您的活动中使用它