/** Unregisters for the registered event with RIL */
 public void dispose(Handler h) {
   mCdmaSubscriptionSourceChangedRegistrants.remove(h);
   synchronized (sReferenceCountMonitor) {
     sReferenceCount--;
     if (sReferenceCount <= 0) {
       mCM.unregisterForCdmaSubscriptionChanged(this);
       mCM.unregisterForOn(this);
       mCM.unregisterForSubscriptionStatusChanged(this);
       sInstance = null;
     }
   }
 }
  /** Unregisters for the registered event with RIL */
  public void dispose(Handler handler) {
    if (null != handler) {
      mCdmaSubscriptionSourceChangedRegistrants.remove(handler);
    }

    mRef--;
    if (mRef <= 0) {
      mCM.unregisterForCdmaSubscriptionSourceChanged(this);
      mCM.unregisterForOn(this);
      mCM.unregisterForSubscriptionStatusChanged(this);
      mCdmaSSMInstances.remove(mCM);
    }
  }