Why do we need to maintain all extension instances on Java side? Obviously it is unnecessary since all the thing Java side can see is just a integer number. Otherwise, we have to maintain them via onInstanceCreated/onInstanceDestroyed JNI method.

So it is better to move broadcast method down to native side.