最近,我尝试在我的android项目中使用System.arrayCopy()
Pattern。
我知道我无法在MVP
图层中执行商务逻辑工作。 View
必须将所有作品投放到View
图层,然后等待Presenter
的结果。
Presenter
应该在UI线程中执行任何操作。但是View
可以在Presenter
中执行某些操作。
如何在Sub-Thread
布局和View
图层中控制MultiThreading?
任何帮助都将受到高度赞赏。
答案 0 :(得分:1)
您需要沟通两个方向:
a)非UI到UI线程
和
b)UI线程到非UI线程。
对于第一种情况,这些天流行的方式是使用 runOnUiThread()
以下是对此技术和其他常用选项的一个很好的调查:
http://www.intertech.com/Blog/android-non-ui-to-ui-thread-communications-part-1-of-5/
至于另一个方向,除非你有慢速阻塞操作,否则通常不需要。这是一个清洁组织源代码的问题。将结果从View发送回Presenter的现代技术是在“与活动通信”部分中使用Fragments中的自定义接口:
http://developer.android.com/guide/components/fragments.html
请注意,您不应该在UI线程上放置长时间运行的操作,因为它会让您的应用程序感到迟钝。如果它们需要超过50毫秒左右,请尝试在不同的线程上运行它们。
答案 1 :(得分:0)
Android已经分离了UI和控制器(或Presenter)的功能。真正的工作是将它更加分离,使其更加强大地遵循MVP模式。该视图与您的演示者分开。除非你出于某种原因想要,否则你不再需要为此做线程。
当我说将它分开得更远时,我只是意味着实现一个抽象数据处理的结构,以便能够轻松地重复使用或更改。