[master] fix bug of handler upload data in main thread

This commit is contained in:
EmArrow
2024-01-03 15:14:03 +08:00
parent 92e544147f
commit 1bcddeb11d
2 changed files with 24 additions and 20 deletions

View File

@@ -2,6 +2,8 @@ package com.mogo.cloud.location.third.service;
import android.app.Service;
import android.content.Intent;
import android.os.Handler;
import android.os.HandlerThread;
import android.os.IBinder;
import android.util.Log;
@@ -9,15 +11,12 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.elegant.utils.ThreadPoolService;
import com.elegant.utils.UiThreadHandler;
import com.google.protobuf.InvalidProtocolBufferException;
import com.mogo.cloud.location.LocationConfig;
import com.mogo.cloud.location.third.core.LocUploadConfig;
import com.mogo.cloud.location.third.core.Location;
import com.mogo.cloud.location.third.core.LocationDelegateManager;
import com.mogo.cloud.location.third.core.LocationServiceProvider;
import com.zhidao.ptech.connsvr.payload.protocol.MogoPayload;
import com.zhidao.ptech.connsvr.protocol.MogoConnsvr;
import com.zhidao.socket.Callback;
import com.zhidao.socket.CallbackManager;
import com.zhidao.socket.SocketClient;
@@ -32,6 +31,8 @@ public class UploadDataService extends Service {
private final LinkedList<MogoPayload.Coordinate> coordinates = new LinkedList<>();
private Handler handler;
private final Callback callback = new Callback() {
@Override
public void update(@NonNull CallbackManager manager, @NonNull byte[] message, String appId, long msgId) {
@@ -46,7 +47,7 @@ public class UploadDataService extends Service {
@Override
public void run() {
ThreadPoolService.execute(UploadDataService.this::publishData);
UiThreadHandler.postDelayed(uploadTask, 5 * LocUploadConfig.instance().getLocInterval());
handler.postDelayed(uploadTask, 5 * LocUploadConfig.instance().getLocInterval());
}
};
@@ -73,7 +74,7 @@ public class UploadDataService extends Service {
location.setTime(provider.getTime());
buildCoordinates(location);
}
UiThreadHandler.postDelayed(this, LocUploadConfig.instance().getLocInterval());
handler.postDelayed(this, LocUploadConfig.instance().getLocInterval());
}
};
@@ -87,8 +88,11 @@ public class UploadDataService extends Service {
public void onCreate() {
super.onCreate();
SocketClient.getInstance().registerSocketCallback(callback);
UiThreadHandler.post(buildLocationTask);
UiThreadHandler.postDelayed(uploadTask, 5 * LocUploadConfig.instance().getLocInterval());
HandlerThread mHandlerThread = new HandlerThread("upload_data_thread");
mHandlerThread.start();
handler = new Handler(mHandlerThread.getLooper());
handler.post(buildLocationTask);
handler.postDelayed(uploadTask, 5 * LocUploadConfig.instance().getLocInterval());
}
private void publishData() {
@@ -109,8 +113,8 @@ public class UploadDataService extends Service {
public void onDestroy() {
super.onDestroy();
SocketClient.getInstance().unregisterSocketCallback(callback);
UiThreadHandler.removeCallbacks(uploadTask);
UiThreadHandler.removeCallbacks(buildLocationTask);
handler.removeCallbacks(uploadTask);
handler.removeCallbacks(buildLocationTask);
clearLocationCache();
}

View File

@@ -36,24 +36,24 @@ PASSWORD=xintai2018
RELEASE=true
# AI CLOUD 云平台
# 工具类
MOGO_UTILS_VERSION=1.4.7.21
MOGO_UTILS_VERSION=1.4.7.23
# 网络请求
MOGO_NETWORK_VERSION=1.4.7.21
MOGO_NETWORK_VERSION=1.4.7.23
# 鉴权
MOGO_PASSPORT_VERSION=1.4.7.21
MOGO_PASSPORT_VERSION=1.4.7.23
# 常链接
MOGO_SOCKET_VERSION=1.4.7.21
MOGO_SOCKET_VERSION=1.4.7.23
# 数据采集
MOGO_REALTIME_VERSION=1.4.7.21
MOGO_REALTIME_VERSION=1.4.7.23
# 探路,道路事件发布,获取
MOGO_TANLU_VERSION=1.4.7.21
MOGO_TANLU_VERSION=1.4.7.23
# 直播推流
MOGO_LIVE_VERSION=1.4.7.21
MOGO_LIVE_VERSION=1.4.7.23
# 直播拉流
MOGO_TRAFFICLIVE_VERSION=1.4.7.21
MOGO_TRAFFICLIVE_VERSION=1.4.7.23
# 定位服务
MOGO_LOCATION_VERSION=1.4.7.21
MOGO_LOCATION_VERSION=1.4.7.23
# 远程通讯模块
MOGO_TELEMATIC_VERSION=1.4.7.21
MOGO_TELEMATIC_VERSION=1.4.7.23
# v2x
MOGO_V2X_VERSION=1.4.7.21
MOGO_V2X_VERSION=1.4.7.23