diff --git a/cim-client-sdk-libs/android/cim-android-sdk-3.8.2.jar b/cim-client-sdk-libs/android/cim-android-sdk-3.8.2.jar index 4fac3c0..988ec77 100644 Binary files a/cim-client-sdk-libs/android/cim-android-sdk-3.8.2.jar and b/cim-client-sdk-libs/android/cim-android-sdk-3.8.2.jar differ diff --git a/cim-client-sdk/cim-android-sdk/src/main/java/com/farsunset/cim/sdk/android/CIMPushManager.java b/cim-client-sdk/cim-android-sdk/src/main/java/com/farsunset/cim/sdk/android/CIMPushManager.java index 20c0891..8e6391d 100644 --- a/cim-client-sdk/cim-android-sdk/src/main/java/com/farsunset/cim/sdk/android/CIMPushManager.java +++ b/cim-client-sdk/cim-android-sdk/src/main/java/com/farsunset/cim/sdk/android/CIMPushManager.java @@ -124,7 +124,10 @@ public class CIMPushManager { if (isDestroyed(context) || isStopped(context)) { return; } - context.sendBroadcast(new Intent(ACTION_CIM_CONNECTION_PONG)); + + Intent serviceIntent = new Intent(context, CIMPushService.class); + serviceIntent.setAction(ACTION_CIM_CONNECTION_PONG); + startService(context, serviceIntent); } private static void sendBindRequest(Context context, String account) { diff --git a/cim-client-sdk/cim-android-sdk/src/main/java/com/farsunset/cim/sdk/android/CIMPushService.java b/cim-client-sdk/cim-android-sdk/src/main/java/com/farsunset/cim/sdk/android/CIMPushService.java index 60530b7..84bd801 100644 --- a/cim-client-sdk/cim-android-sdk/src/main/java/com/farsunset/cim/sdk/android/CIMPushService.java +++ b/cim-client-sdk/cim-android-sdk/src/main/java/com/farsunset/cim/sdk/android/CIMPushService.java @@ -62,7 +62,6 @@ public class CIMPushService extends Service { private CIMConnectorManager connectorManager; private KeepAliveBroadcastReceiver keepAliveReceiver; - private InnerEventBroadcastReceiver innerEventReceiver; private ConnectivityManager connectivityManager; private NotificationManager notificationManager; private final AtomicBoolean persistHolder = new AtomicBoolean(false); @@ -73,9 +72,6 @@ public class CIMPushService extends Service { connectorManager = CIMConnectorManager.getManager(this.getApplicationContext()); notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); - innerEventReceiver = new InnerEventBroadcastReceiver(); - registerReceiver(innerEventReceiver, innerEventReceiver.getIntentFilter()); - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { keepAliveReceiver = new KeepAliveBroadcastReceiver(); registerReceiver(keepAliveReceiver, keepAliveReceiver.getIntentFilter()); @@ -156,6 +152,10 @@ public class CIMPushService extends Service { this.stopSelf(); } + if (CIMPushManager.ACTION_CIM_CONNECTION_PONG.equals(action)) { + connectorManager.send(Pong.getInstance()); + } + if (CIMPushManager.ACTION_SET_LOGGER_EATABLE.equals(action)) { boolean enable = intent.getBooleanExtra(KEY_LOGGER_ENABLE, true); CIMLogger.getLogger().debugMode(enable); @@ -239,9 +239,6 @@ public class CIMPushService extends Service { persistHolder.set(false); - unregisterReceiver(innerEventReceiver); - - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { unregisterReceiver(keepAliveReceiver); } @@ -322,20 +319,4 @@ public class CIMPushService extends Service { } } - - private class InnerEventBroadcastReceiver extends BroadcastReceiver { - - @Override - public void onReceive(Context context, Intent intent) { - connectorManager.send(Pong.getInstance()); - } - - public IntentFilter getIntentFilter() { - IntentFilter intentFilter = new IntentFilter(); - intentFilter.addAction(CIMPushManager.ACTION_CIM_CONNECTION_PONG); - return intentFilter; - } - - } - } diff --git a/cim-use-examples/cim-client-android/app/libs/cim-android-sdk-3.8.2.jar b/cim-use-examples/cim-client-android/app/libs/cim-android-sdk-3.8.2.jar index 4fac3c0..988ec77 100644 Binary files a/cim-use-examples/cim-client-android/app/libs/cim-android-sdk-3.8.2.jar and b/cim-use-examples/cim-client-android/app/libs/cim-android-sdk-3.8.2.jar differ