This commit is contained in:
wangcongtao
2020-06-19 14:17:14 +08:00
parent ae29cecf95
commit f9878f0b98
2 changed files with 20 additions and 1 deletions

View File

@@ -0,0 +1,18 @@
package com.mogo.service.statusmanager;
/**
* @author congtaowang
* @since 2020-01-04
* <p>
* 状态控制器监听
*/
public interface IMogoStickyStatusChangedListener extends IMogoStatusChangedListener {
/**
* 是否需要黏性状态: 先改变状态,后注册监听
*
* @param descriptor 状态
* @return 默认不需要
*/
boolean requestStickyStatus( StatusDescriptor descriptor );
}

View File

@@ -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 ) );