RxJava订阅内存使用情况

时间:2016-06-27 09:02:43

标签: android memory-management garbage-collection location rx-java

我的目标:

在用户移动时获取当前位置并将其发送到服务器。

它始终在服务中获取数据(天/周......)

我正在使用RxJava(我还在学习反应式编程)

我的代码:

            LocationRequest locationRequest = LocationRequest
                    .create()
                    .setNumUpdates(Integer.MAX_VALUE)
                    .setInterval(MOVING_INTERVAL)
                    .setFastestInterval(MOVING_INTERVAL / 2)
                    .setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);

            subscription = new ReactiveLocationProvider(context)
                    .getUpdatedLocation(locationRequest)
                    .filter(location -> location != null)
                    .filter(this::areLocationsDifferent)
                    .subscribe(this::sendMovingLocation);

我的问题:

内存使用量一直在增长,并且GC不会收集它。经过几个小时/几天,这真的很痛苦)

我只有在决定停止跟踪时才取消订阅此订阅。

在Observable中使用WeakReferences的方法是什么? GC后自动重新订阅?还是其他能帮我解决内存问题的东西?

0 个答案:

没有答案