android - 如果应用程序进入后台然后进入前台,Robospice 请求永远不会结束?

标签 android robospice

我正在使用 RoboSpice 库开发一个应用程序来调用 REST API。除一件事外,一切都适用于图书馆。我不使用 RoboSpice 中可用的缓存,因此所有请求都是在没有缓存的情况下发出的。现在,当任何请求正在进行并且用户按下主页按钮时, onStop() 将被调用,其中 spice 管理器的 shouldStop() 被调用,它取消注册所有请求监听器以进行通知。当应用程序再次出现在前台时,由于未通知监听器,因此不会发生 UI 更新。

我不想使用 Robospice 提供的缓存。有没有其他方法可以在不使用缓存的情况下获取 UI 更新通知?

最佳答案

RoboSpice 显然不可能,事实上,有一个很好的理由:这将是一个非常糟糕的主意。

当您的 Activity 结束时 (onStop),Android 想要对其实例进行垃圾回收。要做到这一点,它不应该被任何东西引用。这就是为什么 RS 强制删除所有监听器的原因。通常,监听器持有对 Activity 的引用(作为内部类),而 RS 的最佳成就是让 Activity 正常结束并收集垃圾。

所以,做你想做的事显然会导致内存泄漏,而且大多数时候会导致崩溃:当一个 Activity 不再显示时,你想更新它的 UI 吗?看起来有点尴尬,不是吗?

也许最简单的方法是使用非常有限的缓存,或者在每次 Activity 进入 onStart 时执行所有请求。

关于android - 如果应用程序进入后台然后进入前台,Robospice 请求永远不会结束?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21090423/

相关文章:

c# - Xamarin mono for android 读取 xml 文件

Android 谷歌分析 : Does setAppOptOut() disable EasyTracker?

java - Android Studio onClick 设置文本问题

android - 如何检查 robospice 是否正在加载某些任务

android - 与 Arduino + Android 的蓝牙通信

android - 如何提高android中opengl es的显示性能

android - 使用 ORMLite 在 Robospice 中缓存嵌套对象

java - Retrofit.RetrofitError 请求网络执行过程中出现异常 : null

android - 使用 RoboSpice 的 OkHttpBitmapSpiceManager 从 URL 加载图像时出现 NoClassDefFoundError

android - 使用 Maven 构建失败