我正在寻找有关 android robospice 库如何管理活动生命周期的技术答案。从入门页面:
https://github.com/octo-online/robospice/wiki/Starter-Guide https://github.com/octo-online/robospice/wiki/Starter-Guide
“作为您的 Activity(或其他上下文)的内部类,添加一个将更新您的 UI 的 RequestlListener。不用担心内存泄漏,RoboSpice 会管理您的 Activity 的生命周期。”
我的问题是 robospice 如何自动更新请求侦听器,以便在轮换后以及活动被销毁并重新创建为新实例后仍然能够使用正确的上下文调用正确的侦听器?
我一直在尝试对源代码进行逆向工程,但尚未找到答案:
https://github.com/octo-online/robospice https://github.com/octo-online/robospice
@抓住机会创造Cha。你说的完全正确。 RS 的设计考虑到了这种明确的需求:管理网络请求和活动的生命周期。
@craigrs84。基本上,RS 发生的情况是,当处理请求时,将调用其侦听器只要关联的活动还存在。如果该 Activity 不再存在,则其所有侦听器都会从 RS 上拔下,并且不会收到通知。
RS 的主要目的是确保不存在内存泄漏:您的 Activity 如果必须终止,将会终止并被垃圾回收,RS 不会持有任何会阻止垃圾回收的硬引用。这确实是 RoboSpice 背后的核心理念。
如果您希望将 Activity 的新实例重新插入待处理的请求(例如,您执行请求,然后旋转设备,然后获取 Activity 的新实例,并希望该新实例接收请求的结果由前一个实例执行),这可以通过 RS 实现。
在这种情况下,请使用该方法spiceManager.addListenerIfPending
在启动时,在调用 SpiceManager.start(..) 之后。这不会执行新的请求,而是将新的侦听器重新插入待处理的请求。如果没有待处理的请求,那么它将不执行任何操作。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)