- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我是 Android
的新手,我正在编写一个应用程序。我已经到了开始更彻底地测试我的代码的地步,因此,我想实现 MVP 设计策略,因为它为代码添加了更多可测试层。我似乎无法理解使用 MVP 的假定好处之一是它如何在动态执行时帮助运行 AsyncTasks
。由于您想避免在 Presenter
类中使用任何 Android
特定组件,您应该如何引用使用 AsyncTasks 的
?关于 MVP 的教程显示了 Activity
Presenter
对象具有将 Activity
作为参数并返回给它的方法;但是,如果您的 AsyncTask
需要很长时间并且您的 Activity
已因旋转更改等原因而被破坏,您如何返回到正确的 Activity
?我目前将我的 AsyncTask
存储在 Fragment
中,以便它保存在 Orientation Change 中。我很难找到实现 MVP 实践的解决方法。
最佳答案
要回答您的问题,您无法避免将 Android 类传递给您的 Presenter 类。但不是将 Android 对象作为参数传递,而是向您的 View 类添加一个返回它的方法(例如 getActivity()
)。
也就是说,我强烈建议您使用 Loader
而不是 AsyncTask
。 Loaders
是专门为您的用例设计的。它们也可以在后台运行,但它们的生命周期与 Activity
或 Fragment
的生命周期相关联。
如果您切换到 Loaders
,请将 getLoaderManager()
之类的方法添加到您的 View 界面。
关于Android Model-View-Presenter(MVP) 如何返回长时间运行的 AsyncTask,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39396869/
我有一个独立的 Thread 应用程序。这是一个等待消息的监听器,当消息到达时执行一些操作,其中我必须将消息保存在数据库中。但我遇到了问题,因为如果我运行应用程序并“手动发送消息”,一切都会正常工作,
我有以下php代码: sleep(65); $query = "UPDATE database.table SET XXXXXXX = XXXXXXX - ".$YYYYYY." WHERE
我正在开发一个业余爱好应用程序。它在主布局中使用 webview。单击 webview 内的链接会使用户保持在 webview 内。启动后一切正常,但仍在应用程序内。但是,在手机休眠一段时间后,我重新
我目前运行的应用程序需要最大堆大小为 16GB。 目前我使用以下标志来处理垃圾回收。 -XX\:+UseParNewGC, -XX\:+UseConcMarkSweepGC, -XX:CMSIniti
$ uname -a Darwin Wheelie-Cyberman 10.8.0 Darwin Kernel Version 10.8.0: Tue Jun 7 16:33:36 PDT 2011
在 while 循环仍在休眠时退出它的最简单方法是什么?是否有某种函数可以在 sleep 时检测某个值是否为真? 或者我是否在循环中设置一个小 sleep 并检查如果不再睡一会儿就退出?如果可以,我该
我正在 Ubunu 的 Jetty 6 上运行 Java Web 服务器,用于基于反向 ajax 的 Web。而且我在向浏览器重新发送数据的线程滞后方面遇到了严重的问题。很多时候,一些线程开始 hib
当我运行长时间操作时,我遇到来自 IIS 的请求超时。我的 ASP.NET 应用程序正在后台处理数据,但处理的记录数量很大,因此操作需要很长时间。 但是,我认为 IIS 使 session 超时。这是
我不确定从哪里开始解决这个问题,但如果我有一个 AJAX 网络应用程序向服务器发送请求并在数据库(在我的例子中是 postgresql)上运行长查询,有没有办法停止或如果仍在运行时用户刷新页面或关闭
我是一名优秀的程序员,十分优秀!