This commit is contained in:
wangcongtao
2020-03-30 11:52:17 +08:00
parent 9d0063f79c
commit 93b83ad45e
4 changed files with 16 additions and 11 deletions

View File

@@ -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 {

View File

@@ -84,8 +84,8 @@ public class MapPresenter extends Presenter<MapView> implements
mMogoMapService.getMapUIController().recoverLockMode();//缩放地图会导致锁车发生改变,这里强制锁车
}, 1_000 );
} else {
// 30s后锁车刷新
mRefreshStrategyController.restartAutoRefreshAtTime( 30_000 );
// 20s后锁车刷新
mRefreshStrategyController.restartAutoRefreshAtTime( 20_000 );
}
} else if (type == 2) {

View File

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

View File

@@ -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;
/**
* 所有卡片显示的每类点的最大数据量