diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServiceProvider.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServiceProvider.java index 25807c353e..0613de5866 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServiceProvider.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServiceProvider.java @@ -161,6 +161,9 @@ public class MogoServiceProvider implements IMogoModuleProvider, } private void invokeAutoRefreshStrategy() { + if ( mStatusManager.isSearchUIShow() ) { + return; + } mRefreshRemainingTime = mAutoRefreshStrategy.getInterval(); mHandler.removeMessages( ServiceConst.MSG_TYPE_REFRESH_DECREASE ); mHandler.sendEmptyMessageDelayed( ServiceConst.MSG_TYPE_REFRESH_DECREASE, ServiceConst.DECREASE_INTERVAL ); @@ -427,6 +430,9 @@ public class MogoServiceProvider implements IMogoModuleProvider, * 刷新数据 */ private void notifyRefreshData( MogoLatLng latLng, int radius, RefreshCallback callback ) { + if ( mStatusManager.isSearchUIShow() ) { + return; + } Logger.d( TAG, mAutoRefreshCallback == callback ? "触发自动刷新" : "触发手动刷新" ); mRefreshModel.refreshData( latLng, radius, callback ); } @@ -458,9 +464,24 @@ public class MogoServiceProvider implements IMogoModuleProvider, @Override public void onStatusChanged( StatusDescriptor descriptor, boolean isTrue ) { - if ( descriptor == StatusDescriptor.USER_INTERACTED && isTrue ) { - mRefreshRemainingTime += mAutoRefreshStrategy.getInterruptInterval(); - Logger.i( TAG, "用户状态改变,自动刷新时间延时,%s ms后自动刷新", mRefreshRemainingTime ); + switch ( descriptor ) { + case USER_INTERACTED: + if ( isTrue ) { + mRefreshRemainingTime += mAutoRefreshStrategy.getInterruptInterval(); + Logger.i( TAG, "用户状态改变,自动刷新时间延时,%s ms后自动刷新", mRefreshRemainingTime ); + } + break; + case SEARCH_UI: + if ( isTrue ) { + // 搜索时,不在自动刷新打点策略 + stopAutoRefreshStrategy(); + } else { + // 搜索后,打开打点策略 + if ( mAutoRefreshCallback != null ) { + mAutoRefreshCallback.onSuccess(); + } + } + break; } } 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 04654afc1c..fe4abf3ef9 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 @@ -69,6 +69,12 @@ public class MogoStatusManager implements IMogoStatusManager { return get_bool_val( StatusDescriptor.USER_INTERACTED ); } + + @Override + public boolean isSearchUIShow() { + return get_bool_val( StatusDescriptor.SEARCH_UI ); + } + private boolean get_bool_val( StatusDescriptor descriptor ) { Boolean val = mStatus.get( descriptor ); return val == null ? false : val;