Java Android中的CFRunLoop或NSRunLoop。
乍一看(来自IOS文档),CFRunLoop似乎等同于Android...but中的处理程序和循环程序,它还用于接收来自网络的通知和回调等…(我不清楚)……
我需要帮助理解这个类的一般用法,以帮助在android中找到一个很好的等价物,或者实现我自己的一个。
谢谢,
发布于 2015-01-21 20:37:00
NSRunLoop是CFRunLoop的包装器。
作为一名从安卓转过来的iOS开发人员,我可以告诉你,NSRunLoop和CFRunLoop在安卓中的等价物是 Looper ,尽管RunLoop和Looper之间略有不同。
而且RunLoop和循环的用法是不同的。关于RunLoop的用法,你可以看看这个链接:
https://stackoverflow.com/a/12092176/2805488
然而,对于android Looper的用法:
http://developer.android.com/reference/android/os/Looper.html
发布于 2016-07-14 19:03:35
我不认为Android架构在主线程中有runloop实现,在Android中,主线程有一个事件处理程序来处理触摸事件、广播侦听器、活动生命周期回调……但是它们不处理来自套接字的流事件(像从套接字接收的数据那样的事件)。
我们需要在单独的线程中处理这些事件,如果我们需要在这个线程中进行一些UI更改,我们需要使用循环将消息传递给主线程处理程序,因为我们知道UI更改不能在其他线程中完成。
但在IOS中,NSRunLoop帮助我们在主循环中处理这些事件,而不是处理多线程问题。NSRunloop不会创建单独的线程,而是使用相同的线程来处理事件。
我们应该小心使用NSRunLoop添加事件,如果需要几秒钟的时间,最好使用NSThread而不是NSRunloop,这会阻止主线程处理触摸事件。
我附上了帮助我理解这些概念的链接,关于NSRunloop和关于handlers and loopers
https://stackoverflow.com/questions/28058235
复制相似问题