2015-11-17 19 views

Trả lời

5

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:

  1. "Timing" mô-đun thực hiện giao diện LifecycleEventListener.java
  2. 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
  3. Bạn có thể thực hiện onHostPauseonHostResume 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ừ đó
+0

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! –

Các vấn đề liên quan