我正在尝试在单个AsyncTask
内链接一些Activity
类,一旦完成(成功),它将显示另一个Activity
。目前我正在将它们链接到彼此的onPostExecute()
方法,但我不喜欢这样,因为它有点不必要地耦合实现。
例如,我有ImportVideoActivity
用户输入要下载的YouTube网址。为此,我有两个AsyncTask
类:
YouTubeVideoInfoTask
:获取视频元数据信息以及枚举可用的视频格式(质量和编解码器)。YouTubeVideoDownloadTask
:根据视频信息元数据中的URL执行视频下载。我希望ImportVideoActivity
首先执行YouTubeVideoInfoTask
来枚举视频质量并选择最佳视频质量。之后,它应该执行YouTubeVideoDownloadTask
,并在完成后使用下载的视频启动CropVideoActivity
。
如何在AsyncTask
内优雅地链接这两个ImportVideoActivity
类?是否有某种监听器/回调允许我监视这些任务何时完成并在不使用AsyncTask.onPostExecute()
方法的情况下启动下一个任务?
答案 0 :(得分:1)
是。在Activity中使用Callback Listener。一旦调用它,您就可以从Activity中启动新的AsyncTask。
我的另一个答案示例:How to return an object from the asynctask to the main class in android