ConnectSDK / Connect-SDK-Android-Core

Core source code for the Android Connect SDK project
Apache License 2.0
114 stars 79 forks source link

Maintain a single static instance of DiscoveryManager. #89

Closed nickwph closed 8 years ago

nickwph commented 8 years ago

Consider the situation that there are 2 SDKs (SDK_A and SDK_B) using ConnectSDK. Both of them run DiscoveryManager.init() in their SDK.init() method and told their clients to run it in Application.onCreate(). 2 DiscoveryManager instances will be created in that case, and potentially leaked a DiscoveryManager.

This pull request will make sure there is only one single static instance of DiscoveryManager will be used. Event DiscoveryManager.init() is run twice, only one DiscoveryManager will be used.

Also, making DiscoveryManager's constructor private can prevent clients from creating multiple instances of DiscoveryManager, as it is not recommended already in the original code.