Tôi bắt đầu học lập trình phản ứng những ngày này. Trong ứng dụng của tôi, tôi đã chuyển sang sử dụng rxandroid cho nhiều trường hợp xử lý dữ liệu một cách không đồng bộ. Nhưng tôi không biết cách áp dụng cho người nghe vị trí. Có cách nào để đăng ký thay đổi vị trí của người dùng không? Xin vui lòng cho tôi một ý tưởng.Cách sử dụng rxandroid để nghe bản cập nhật vị trí gps
5
A
Trả lời
8
Bạn có thể tạo Đài quan sát hoặc Chủ đề bằng cách sử dụng LocationListener
và khi nhận được gọi lại trong onLocationChanged
, chỉ cần gọi trênTiếp theo với đối tượng vị trí.
public final class LocationProvider implements onLocationChanged {
private final PublishSubject<Location> latestLocation = PublishSubject.create();
//...
@Override
public void onLocationChanged(Location location) {
latestLocation.onNext(location);
}
}
Sau đó, bạn có thể đăng ký nó trong lớp cần vị trí.
Ngoài ra còn có một số thư viện mã nguồn mở mà bạn có thể sử dụng: Android-ReactiveLocation và cgeo
Ngoài ra, xem Observable-based API and unsubscribe issue
Hope this helps!
0
Cách sử dụng thư viện tuyệt vời này? https://github.com/patloew/RxLocation
thêm video này vào build.gradle
compile 'com.patloew.rxlocation:rxlocation:1.0.4'
bạn có thể sử dụng đoạn mã này từ thư viện nêu trên để đăng ký vào những thay đổi vị trí, tôi tin rằng đây là cách đơn giản nhất
// Create one instance and share it
RxLocation rxLocation = new RxLocation(context);
LocationRequest locationRequest = LocationRequest.create()
.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY)
.setInterval(5000);
rxLocation.location().updates(locationRequest)
.flatMap(location -> rxLocation.geocoding().fromLocation(location).toObservable())
.subscribe(address -> {
/* do something */
});
Các vấn đề liên quan
- 1. MyLocationOverlay hoặc LocationManager để cập nhật vị trí hiện tại
- 2. Cách nhận vị trí GPS Android
- 3. iPhone GPS - Không nhận được cập nhật vị trí hợp lệ
- 4. Cách định kỳ tìm vị trí gps trong Android
- 5. Dừng trình nghe vị trí trong Android
- 6. Mô phỏng cập nhật vị trí trên iPhone Simulator
- 7. Giảm vị trí nền iOS Vị trí sử dụng pin
- 8. Làm thế nào để loại bỏ các bản cập nhật vị trí trong lớp dịch vụ trong Android?
- 9. Vị trí GPS đến Múi giờ
- 10. vị trí hiện tại của gps android
- 11. Cách cập nhật vị trí bản đồ google v2 từ dịch vụ nền android
- 12. Làm thế nào để tránh cập nhật vị trí thường xuyên?
- 13. Cách nhận vị trí MenuItem trong trình nghe bằng cách sử dụng NavigationView mới
- 14. Cách tốt nhất để chờ sửa chữa vị trí GPS là gì?
- 15. Tôi có nên sử dụng Android LocationManager.getBestProvider mỗi lần tôi yêu cầu cập nhật vị trí không?
- 16. Cập nhật vị trí đánh dấu Google Maps V3
- 17. Nhận vị trí GPS qua dịch vụ trong Android
- 18. Tôi làm cách nào để sử dụng giao dịch trong khi thực hiện cập nhật nhiều vị trí trong Firebase?
- 19. Hành vi lạ cập nhật vị trí sprite
- 20. Vị trí nút mạng không được cập nhật, trong cocos3d
- 21. Cách Nike + GPS trên iPhone nhận được bản cập nhật gia tốc trong nền?
- 22. Cập nhật vị trí nền bằng cách sử dụng Google API - Nhà cung cấp vị trí hợp nhất không chính xác
- 23. vị trí địa lý nền ionic 3 không cập nhật
- 24. Cách nhận tem thời gian chính xác từ vị trí Android GPS
- 25. Tần suất cập nhật Trình quản lý vị trí, iphone
- 26. Chèn/Cập nhật bản ghi bằng cách sử dụng mongoose
- 27. Cập nhật Vị trí Bắt đầu MediaPlayer Khi Tạm dừng
- 28. Android GPS có được vị trí hiện tại
- 29. Nhập biểu mẫu Javascript - GPS - Vị trí địa lý
- 30. WebWorldWind Cập nhật vị trí có thể hiển thị