我正在寻找技术答案,以了解android robospice库如何管理活动生命周期。从入门页面:robospice如何管理活动生命周期?
https://github.com/octo-online/robospice/wiki/Starter-Guide
“作为一个内部类的活动(或其他方面),加一个RequestlListener将更新你的UI不用担心内存泄漏,RoboSpice管理您的活动的生命周期。”
我的问题是,robospice如何自动更新请求侦听器,以便在旋转之后和活动被销毁并重新创建为新实例之后,仍然能够使用正确的上下文调用正确的侦听器?
我一直在试图反向工程的源代码,但没有找到答案尚未:
https://github.com/octo-online/robospice
所以如果你没有提供requestCacheKey,并且同时有多个同一个Activity运行的实例,那么addListenerIfPending仍然能够正常工作吗?或者在这种情况下没有足够的信息?这可能不太可能,但我很好奇。 – craigrs84
@snicolas,我很好奇,如果你没有调用shouldStop()(或非异步方法)库不会回调那些注册到Activities,Fragments,Services等的监听器?如果不通过源代码挖掘太多,并且基于我的早期使用和库的测试,我会收到一个异常,当我收到一个对象已经“死亡”的回调。此外,图书馆是伟大的,请保持良好的工作! – AllDayAmazing
如果你不调用shouldStop,那么监听器将被触发。这可能会导致崩溃和内存泄漏,因为经常监听器是内部类,并且对活动实例持有引用,这些引用已被销毁,并且如果您在侦听器中执行findViewById等操作,它甚至会崩溃。我想你明白了,只是想澄清事情。 – Snicolas