Activity中的AsyncTask链接(回调?)

时间:2014-06-12 22:05:21

标签: java android android-asynctask

我正在尝试在单个AsyncTask内链接一些Activity类,一旦完成(成功),它将显示另一个Activity。目前我正在将它们链接到彼此的onPostExecute()方法,但我不喜欢这样,因为它有点不必要地耦合实现。

例如,我有ImportVideoActivity用户输入要下载的YouTube网址。为此,我有两个AsyncTask类:

  • YouTubeVideoInfoTask:获取视频元数据信息以及枚举可用的视频格式(质量和编解码器)。
  • YouTubeVideoDownloadTask:根据视频信息元数据中的URL执行视频下载。

我希望ImportVideoActivity首先执行YouTubeVideoInfoTask来枚举视频质量并选择最佳视频质量。之后,它应该执行YouTubeVideoDownloadTask,并在完成后使用下载的视频启动CropVideoActivity

如何在AsyncTask内优雅地链接这两个ImportVideoActivity类?是否有某种监听器/回调允许我监视这些任务何时完成并在不使用AsyncTask.onPostExecute()方法的情况下启动下一个任务?

1 个答案:

答案 0 :(得分:1)

是。在Activity中使用Callback Listener。一旦调用它,您就可以从Activity中启动新的AsyncTask。

我的另一个答案示例:How to return an object from the asynctask to the main class in android