gpt4 book ai didi

Android Model-View-Presenter(MVP) 如何返回长时间运行的 AsyncTask

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:35:02 24 4
gpt4 key购买 nike

我是 Android 的新手,我正在编写一个应用程序。我已经到了开始更彻底地测试我的代码的地步,因此,我想实现 MVP 设计策略,因为它为代码添加了更多可测试层。我似乎无法理解使用 MVP 的假定好处之一是它如何在动态执行时帮助运行 AsyncTasks。由于您想避免在 Presenter 类中使用任何 Android 特定组件,您应该如何引用使用 AsyncTasks 的 Activity ?关于 MVP 的教程显示了 Presenter 对象具有将 Activity 作为参数并返回给它的方法;但是,如果您的 AsyncTask 需要很长时间并且您的 Activity 已因旋转更改等原因而被破坏,您如何返回到正确的 Activity?我目前将我的 AsyncTask 存储在 Fragment 中,以便它保存在 Orientation Change 中。我很难找到实现 MVP 实践的解决方法。

最佳答案

要回答您的问题,您无法避免将 Android 类传递给您的 Presenter 类。但不是将 Android 对象作为参数传递,而是向您的 View 类添加一个返回它的方法(例如 getActivity())。

也就是说,我强烈建议您使用 Loader 而不是 AsyncTaskLoaders 是专门为您的用例设计的。它们也可以在后台运行,但它们的生命周期与 ActivityFragment 的生命周期相关联。

如果您切换到 Loaders,请将 getLoaderManager() 之类的方法添加到您的 View 界面。

关于Android Model-View-Presenter(MVP) 如何返回长时间运行的 AsyncTask,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39396869/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com