question: 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 ) ) ; } }
target:  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.