Sfoglia il codice sorgente

<app退出时及时清除sip监听>

weizhengliang 4 anni fa
parent
commit
67bba29656

+ 4 - 2
callingbed/src/main/java/com/wdkl/app/ncs/callingbed/sip/SipHelper.java

@@ -163,8 +163,9 @@ public class SipHelper {
         //LogUtil.i(SipInfoTag, "lifecycle // onDestroy");
 
         IVvsipService sipservice = VvsipService.getService();
-        if (sipservice != null && sipListner != null) {
-            sipservice.removeListener(sipListner);
+        if (sipservice != null) {
+            //sipservice.removeListener(sipListner);
+            sipservice.clearListener();
         }
 
         getSipServiceStartHandler().removeCallbacks(getSipServiceStartRunnable());
@@ -537,6 +538,7 @@ public class SipHelper {
                         IVvsipService sipservice = ((VvsipServiceBinder) service).getService();
                         if (sipservice != null && sipListner != null) {
                             //LogUtil.i(SipInfoTag, "Connected!");
+                            sipservice.clearListener();
                             sipservice.addListener(sipListner);
                             SipHelper.getInstance().obtainSipInfo();//Sip信息获取
                         }

+ 1 - 0
sip2/src/com/vvsip/ansip/IVvsipService.java

@@ -19,6 +19,7 @@ public interface IVvsipService {
 	public void initiateOutgoingCall(String target,String macStr);
     public void addListener(IVvsipServiceListener listener); 
     public void removeListener(IVvsipServiceListener listener);
+    public void clearListener();
     public void setAudioNormalMode();
     public void setAudioInCallMode();
     public void setSpeakerModeOff();

+ 9 - 0
sip2/src/com/vvsip/ansip/VvsipService.java

@@ -115,6 +115,15 @@ public class VvsipService extends Service implements IVvsipService {
 	}
 
 	@Override
+	public void clearListener() {
+		if (mListeners != null) {
+			synchronized (mListeners) {
+				mListeners.clear();
+			}
+		}
+	}
+
+	@Override
 	public void onCreate() {
 		Log.i(mTag, "lifecycle // onCreate");
 		neighborsList = new ArrayList<VvsipNeighbor>();