Bạn có thể gửi sự kiện từ java sử dụng RCTDeviceEventEmitter.emit
phương pháp định nghĩa ở đây: DeviceEventManagerModule.java#L27
Để làm điều đó cần thiết đầu tiên bạn phải có tài liệu tham khảo để ReactApplicationContext
, sau đó gọi:
reactAppContext
.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class)
.emit("keyboardWillShow1", null);
Thay vì "null" bạn có thể gửi dữ liệu tùy ý sau đó sẽ được đính kèm vào sự kiện bạn nhận được ở bên JS.
Xem ví dụ này DeviceEventManagerModule.java#L49 - đây là cách các sự kiện nút quay lại được gửi đến JS.
Sau đó bạn có thể sử dụng mô hình tương tự để gửi các sự kiện từ hoạt động /onResume
giả sử bạn có tham chiếu đến ReactApplicationContext
Một cách khác là tạo ra mô-đun tùy chỉnh của bạn, mà có thể đăng kí nhận sự kiện vòng đời. Xem cách nó được thực hiện trong "Thời gian" mô-đun:
- "Timing" mô-đun thực hiện giao diện LifecycleEventListener.java
- Khi mô-đun được khởi tạo nó tự đăng kí nhận vòng đời thông qua giao diện mà Timing.java#L126
- Bạn có thể thực hiện
onHostPause
và onHostResume
phương pháp của giao diện đó và sử dụng đoạn mã từ phía trên để gửi sự kiện từ đó
Cảm ơn bạn! Tôi đã tìm kiếm tất cả các cách để thực hiện onPause và onResume! –