我在 Android 中遇到以下问题:
我需要处理行中的一些异步任务(例如Async-Task 1 -> Async-Task 2 -> Asyc-Task 3)
。所有异步任务都通过处理程序 (sendMessage(xy))
进行应答。
所以我的处理程序必须启动下一个异步任务。这是最佳实践吗?我应该选择其他方式吗?
总结:我正在寻找一种方法来连续处理许多异步任务......
我无法使用 asyncThread 的 get() 函数,因为它们仅在处理程序中返回答案。
抱歉我的英语不好..
最佳答案
有趣的是,其他两个答案都错过了您想要连续执行的事实......:)
我个人讨厌 AsyncTask,我宁愿在自己的线程中实现它,但这就是我。
您希望操作 A(一旦完成)调用操作 B(等等)...这意味着您实际上需要一个线程来执行 BL 操作序列。
这可以通过具有两个处理程序的对象轻松实现,一个是用于 BL 的新 ThreadHandler 的 Handler,另一个可能是用于 UI 更新的 UI 线程处理程序,一旦任务完成,它就会发布到 BL 处理程序上以开始下一个任务。
这会将流程封装为一个整体,并且错误将很容易跟踪。我已经使用多个服务器和 SMS 验证代码以及一些其他内容对登录流程进行了两次建模。
它还涵盖了一个场景,其中任务的成功或失败结果需要调用不同的任务。
关于android - 处理程序中的异步任务?在 Row 中执行多个异步任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15625363/