diff --git a/.idea/misc.xml b/.idea/misc.xml
index 707ee6e613..2dc54c489f 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -1,6 +1,6 @@
+ * 状态控制器监听 + */ +public interface IMogoStickyStatusChangedListener extends IMogoStatusChangedListener { + + /** + * 是否需要黏性状态: 先改变状态,后注册监听 + * + * @param descriptor 状态 + * @return 默认不需要 + */ + boolean requestStickyStatus( StatusDescriptor descriptor ); +} diff --git a/services/mogo-service/src/main/java/com/mogo/service/impl/statusmanager/MogoStatusManager.java b/services/mogo-service/src/main/java/com/mogo/service/impl/statusmanager/MogoStatusManager.java index b7e0eed831..a16ca51607 100644 --- a/services/mogo-service/src/main/java/com/mogo/service/impl/statusmanager/MogoStatusManager.java +++ b/services/mogo-service/src/main/java/com/mogo/service/impl/statusmanager/MogoStatusManager.java @@ -8,6 +8,7 @@ import com.alibaba.android.arouter.facade.annotation.Route; import com.mogo.service.MogoServicePaths; import com.mogo.service.statusmanager.IMogoStatusChangedListener; import com.mogo.service.statusmanager.IMogoStatusManager; +import com.mogo.service.statusmanager.IMogoStickyStatusChangedListener; import com.mogo.service.statusmanager.StatusDescriptor; import com.mogo.utils.logger.Logger; @@ -236,7 +237,7 @@ public class MogoStatusManager implements IMogoStatusManager { } mListeners.get( descriptor ).add( listener ); - if ( listener.requestStickyStatus( descriptor ) ) { + if ( listener instanceof IMogoStickyStatusChangedListener && listener.requestStickyStatus( descriptor ) ) { Boolean val = mStatus.get( descriptor ); if ( val != null ) { listener.onStatusChanged( descriptor, get_bool_val( descriptor ) );