2016-06-15 51 views
1

我有一個要求,即當所有訂戶都從特定事件中註銷時,服務需要能夠取消網絡請求。我正在使用Greenrobot EventBus,據我所知,沒有內置任何東西可以在有人註銷時發送事件。 我在想,我可以覆蓋EventBus的取消註冊方法,並在調用時發佈'UnsubscribedEvent'。服務可以監聽這個事件,當它收到它時,它可以調用hasSubscriberForEvent來檢查它是否應該取消請求。這聽起來合理嗎?還是有人有更好的建議?訂戶未註冊時的事件總線(greenrobot)事件

回答

1

你在問題中指定的內容應該可以正常工作。

另外,爲了避免重寫庫的方法和搞亂東西在不知不覺中,你可以去這樣的併發症:

  1. 保留一個計數器將被跟蹤註冊用戶
  2. 遞增/遞減計數器作爲和當有新訂閱或取消註冊時(使用方法)
  3. 在計數器跟蹤方法中,檢查值計數器是否爲0並取消網絡請求(如果正在進行)