我在位置变化上创建了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.