diff --git a/foudations/mogo-utils/src/main/java/com/mogo/utils/WorkThreadHandler.java b/foudations/mogo-utils/src/main/java/com/mogo/utils/WorkThreadHandler.java index cb4f6a2c86..6411267066 100644 --- a/foudations/mogo-utils/src/main/java/com/mogo/utils/WorkThreadHandler.java +++ b/foudations/mogo-utils/src/main/java/com/mogo/utils/WorkThreadHandler.java @@ -2,6 +2,7 @@ package com.mogo.utils; import android.os.Handler; import android.os.HandlerThread; +import android.os.Looper; /** * @author congtaowang @@ -11,6 +12,7 @@ import android.os.HandlerThread; */ public class WorkThreadHandler { + private Looper mThreadLooper; private Handler mHandler; private HandlerThread mThread; @@ -18,7 +20,8 @@ public class WorkThreadHandler { // private constructor mThread = new HandlerThread( "work-thread-handler" ); mThread.start(); - mHandler = new Handler( mThread.getLooper() ); + mThreadLooper = mThread.getLooper(); + mHandler = new Handler( mThreadLooper ); } private static final class InstanceHolder { @@ -29,6 +32,10 @@ public class WorkThreadHandler { return InstanceHolder.INSTANCE; } + public Looper getLooper() { + return mThreadLooper; + } + private Object readResolve() { // 阻止反序列化,必须实现 Serializable 接口 return InstanceHolder.INSTANCE; @@ -40,7 +47,7 @@ public class WorkThreadHandler { return mHandler != null && mHandler.post( r ); } - public boolean postDelayed(Runnable r, long delayMillis ) { + public boolean postDelayed( Runnable r, long delayMillis ) { return mHandler != null && mHandler.postDelayed( r, delayMillis ); } @@ -48,7 +55,7 @@ public class WorkThreadHandler { return mHandler; } - public boolean postOnceDelayed(Runnable r, long delayMillis ) { + public boolean postOnceDelayed( Runnable r, long delayMillis ) { if ( mHandler == null ) { return false; } else { diff --git a/modules/mogo-module-map/src/main/java/com/mogo/module/map/MapPresenter.java b/modules/mogo-module-map/src/main/java/com/mogo/module/map/MapPresenter.java index 9de4be2d80..028f7a0f91 100644 --- a/modules/mogo-module-map/src/main/java/com/mogo/module/map/MapPresenter.java +++ b/modules/mogo-module-map/src/main/java/com/mogo/module/map/MapPresenter.java @@ -84,8 +84,8 @@ public class MapPresenter extends Presenter implements mMogoMapService.getMapUIController().recoverLockMode();//缩放地图会导致锁车发生改变,这里强制锁车 }, 1_000 ); } else { - // 30s后锁车刷新 - mRefreshStrategyController.restartAutoRefreshAtTime( 30_000 ); + // 20s后锁车刷新 + mRefreshStrategyController.restartAutoRefreshAtTime( 20_000 ); } } else if (type == 2) { diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServices.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServices.java index 97b99a52ab..e48f506cab 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServices.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServices.java @@ -63,6 +63,7 @@ import com.mogo.service.statusmanager.IMogoStatusChangedListener; import com.mogo.service.statusmanager.IMogoStatusManager; import com.mogo.service.statusmanager.StatusDescriptor; import com.mogo.utils.UiThreadHandler; +import com.mogo.utils.WorkThreadHandler; import com.mogo.utils.logger.Logger; import com.mogo.utils.network.utils.GsonUtil; @@ -272,8 +273,6 @@ public class MogoServices implements IMogoMapListener, } }; - private HandlerThread mHandlerThread; - private Handler mThreadHandler; public void init( Context context ) { @@ -330,12 +329,11 @@ public class MogoServices implements IMogoMapListener, } private void initWorkThread() { - mHandlerThread = new HandlerThread( "mogo-handler-thread" ); - mHandlerThread.start(); - mThreadHandler = new Handler( mHandlerThread.getLooper() ) { + mThreadHandler = new Handler( WorkThreadHandler.getInstance().getLooper() ) { @Override public void handleMessage( Message msg ) { super.handleMessage( msg ); + Logger.d( TAG, "current thread: %s", Thread.currentThread() ); if ( msg.what == ServiceConst.MSG_MAP_CHANGED ) { if ( msg.obj instanceof RefreshObject ) { RefreshObject ro = ( ( RefreshObject ) msg.obj ); diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/ServiceConst.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/ServiceConst.java index bc53a71cae..10250b21ab 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/ServiceConst.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/ServiceConst.java @@ -85,7 +85,7 @@ public class ServiceConst { /** * 30 s */ - public static final int DEFAULT_AUTO_REFRESH_WHEN_INTERRUPT = 30 * 1_000; + public static final int DEFAULT_AUTO_REFRESH_WHEN_INTERRUPT = 20 * 1_000; /** * 所有卡片显示的每类点的最大数据量