Observable在onResume中创建了额外的observable

时间:2017-12-07 19:08:19

标签: android location observable rx-java2

我在位置变化上创建了Observable。但问题是当应用程序从后台返回到前台时 - >这里创建了另一个observable。 过程如下: 在onCreate()方法中我在位置上创建了observable。当应用程序转到后台位置更新工作正常。但是,当应用程序返回到前景时,一个可观察者在位置上创建了另一个观察点,并且我获得了额外的数据(另一个可观察的位置)。总而言之,每当应用程序从后台返回到前景可观察时,都会创建另一个不需要的可观察对象。在onResume()中,我没有任何实现。

是否有人知道如何解决此挑战并省略其他可观察对象?只需要第一个。

下面我在onCreate中显示我的代码片段:

            .flatMap(new Function<LocationSettingsResult, Observable<Location>>() {
                @Override
                public Observable<Location> apply(LocationSettingsResult locationSettingsResult) {
                    if (ActivityCompat.checkSelfPermission(getApplicationContext(),
                            Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED
                            && ActivityCompat.checkSelfPermission(getApplicationContext(),
                            Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
                        // TODO: Consider calling
                        //    ActivityCompat#requestPermissions
                        // here to request the missing permissions, and then overriding
                        //   public void onRequestPermissionsResult(int requestCode, String[] permissions,
                        //                                          int[] grantResults)
                        // to handle the case where the user grants the permission. See the documentation
                        // for ActivityCompat#requestPermissions for more details.

                    }
                    LogUtil.i(TAG, "location request: " + lastKnownLocationObservable.toString());
                    return locationProvider.getUpdatedLocation(locationRequest);
                }
            })
            .observeOn(AndroidSchedulers.mainThread());

logcat的:

I/MainActivity: 46.000000 16.000000
I/MainActivity: 46.000000 16.000000 -> second observable which is not needed.

0 个答案:

没有答案