diff --git a/android/app/src/main/java/cn/toside/music/mobile/userApi/UserApiModule.java b/android/app/src/main/java/cn/toside/music/mobile/userApi/UserApiModule.java index f22e795..9fbc154 100644 --- a/android/app/src/main/java/cn/toside/music/mobile/userApi/UserApiModule.java +++ b/android/app/src/main/java/cn/toside/music/mobile/userApi/UserApiModule.java @@ -16,6 +16,8 @@ public class UserApiModule extends ReactContextBaseJavaModule { private final ReactApplicationContext reactContext; private UtilsEvent utilsEvent; + private int listenerCount = 0; + UserApiModule(ReactApplicationContext reactContext) { super(reactContext); this.javaScriptThread = null; @@ -28,6 +30,23 @@ public class UserApiModule extends ReactContextBaseJavaModule { return "UserApiModule"; } + @ReactMethod + public void addListener(String eventName) { + if (listenerCount == 0) { + // Set up any upstream listeners or background tasks as necessary + } + + listenerCount += 1; + } + + @ReactMethod + public void removeListeners(Integer count) { + listenerCount -= count; + if (listenerCount == 0) { + // Remove upstream listeners, stop unnecessary background tasks + } + } + @ReactMethod public void loadScript(ReadableMap data) { if (this.utilsEvent == null) this.utilsEvent = new UtilsEvent(this.reactContext); diff --git a/android/app/src/main/java/cn/toside/music/mobile/utils/UtilsModule.java b/android/app/src/main/java/cn/toside/music/mobile/utils/UtilsModule.java index aaec678..b2f4959 100644 --- a/android/app/src/main/java/cn/toside/music/mobile/utils/UtilsModule.java +++ b/android/app/src/main/java/cn/toside/music/mobile/utils/UtilsModule.java @@ -42,6 +42,8 @@ import java.util.Objects; public class UtilsModule extends ReactContextBaseJavaModule { private final ReactApplicationContext reactContext; + private int listenerCount = 0; + UtilsEvent utilsEvent; UtilsModule(ReactApplicationContext reactContext) { @@ -56,6 +58,23 @@ public class UtilsModule extends ReactContextBaseJavaModule { return "UtilsModule"; } + @ReactMethod + public void addListener(String eventName) { + if (listenerCount == 0) { + // Set up any upstream listeners or background tasks as necessary + } + + listenerCount += 1; + } + + @ReactMethod + public void removeListeners(Integer count) { + listenerCount -= count; + if (listenerCount == 0) { + // Remove upstream listeners, stop unnecessary background tasks + } + } + private void registerScreenBroadcastReceiver() { final IntentFilter theFilter = new IntentFilter(); /** System Defined Broadcast */