远程管理,但Android上没有垃圾收集

远程管理,但Android上没有垃圾收集,android,memory-management,garbage-collection,Android,Memory Management,Garbage Collection,在安卓系统中,我正确地接到了远程呼叫,并且做出了适当的反应。我释放了保存的UI元素,当UI被隐藏时,内存使用率降低了50% 我遇到的问题是,Android系统在每次远程调用后都没有运行垃圾收集器。我可以在logcat中看到这一点。因此,我将接到一些非即时(关键)呼叫,然后最终我的后台进程将被终止。然而,如果我使用Android Studio手动启动GC,应用程序将释放50%的内存回到系统中,大大增加了生存的机会 我可以添加一些System.GC调用,但我不知道Android会如何/为什么一直告诉

在安卓系统中,我正确地接到了远程呼叫,并且做出了适当的反应。我释放了保存的UI元素,当UI被隐藏时,内存使用率降低了50%

我遇到的问题是,Android系统在每次远程调用后都没有运行垃圾收集器。我可以在logcat中看到这一点。因此,我将接到一些非即时(关键)呼叫,然后最终我的后台进程将被终止。然而,如果我使用Android Studio手动启动GC,应用程序将释放50%的内存回到系统中,大大增加了生存的机会


我可以添加一些System.GC调用,但我不知道Android会如何/为什么一直告诉我释放内存,但拒绝运行垃圾收集器。(我仍然需要测试更多的设备,因为我想知道这是否是一个特定于设备的问题。)

为什么不将WeakReference用于非关键资源?

为什么不将WeakReference用于非关键资源?

这似乎是一个特定手机的问题。我无法在Nexus设备上复制这个。我的Nexus设备在我释放对象的非即时调用之后执行垃圾收集器传递

这似乎是特定手机的问题。我无法在Nexus设备上复制这个。我的Nexus设备在我释放对象的非即时调用之后执行垃圾收集器传递

我这样做。问题不是内存泄漏。问题是,尽管系统知道内存不足,但垃圾收集器没有运行。如果垃圾收集器不运行,WeakReference资源将不会被清理。我会这样做。问题不是内存泄漏。问题是,尽管系统知道内存不足,但垃圾收集器没有运行。如果垃圾收集器未运行,则不会清理WeakReference资源。