public void assignThreadForSubscriber(@NonNull Object subscriber){
  Looper looper=Looper.myLooper();
  if (looper != null) {
    mSubscribersDefaultThreads.put(new IdentityWeakReferenceKey<>(subscriber),looper != Looper.getMainLooper() ? new Handler(looper) : mUiThreadHandler);
  }
 else {
    mSubscribersDefaultThreads.remove(new IdentityWeakReferenceKey<>(subscriber));
  }
}

public void assignThreadForSubscriber ( @ NonNull Object subscriber ) { Looper looper = Looper . myLooper ( ) ; if ( looper != null ) { mSubscribersDefaultThreads . put ( new IdentityWeakReferenceKey < > ( subscriber ) , looper != Looper . getMainLooper ( ) ? new Handler ( looper ) : mUiThreadHandler ) ; } else { mSubscribersDefaultThreads . remove ( new IdentityWeakReferenceKey < > ( subscriber ) ) ; } }
assign current thread to the subscriber object . to make it work , the thread have to have a looper ( looper . mylooper ( ) ! = null ) . if current thread have no looper , all event handlers marked with deliver_in_default_thread , it will be executed as deliver_in_background_thread . < p / > this method can be used to re - assign the default thread for already registered object .
