From bd3270f8dd20dd7dfda14604820fa8e233d51329 Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Thu, 2 Oct 2025 10:40:25 +0800 Subject: [PATCH] 20251002_104016_614 --- positions/build.properties | 4 +-- .../activities/LocationActivity.java | 25 ++++++++++++------- .../positions/services/MainService.java | 6 ++++- 3 files changed, 23 insertions(+), 12 deletions(-) diff --git a/positions/build.properties b/positions/build.properties index ddbeaa2..53e1826 100644 --- a/positions/build.properties +++ b/positions/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Thu Oct 02 02:13:03 GMT 2025 +#Thu Oct 02 02:36:00 GMT 2025 stageCount=8 libraryProject= baseVersion=15.0 publishVersion=15.0.7 -buildCount=2 +buildCount=9 baseBetaVersion=15.0.8 diff --git a/positions/src/main/java/cc/winboll/studio/positions/activities/LocationActivity.java b/positions/src/main/java/cc/winboll/studio/positions/activities/LocationActivity.java index 6d9df27..d10b831 100644 --- a/positions/src/main/java/cc/winboll/studio/positions/activities/LocationActivity.java +++ b/positions/src/main/java/cc/winboll/studio/positions/activities/LocationActivity.java @@ -22,6 +22,8 @@ import cc.winboll.studio.positions.models.PositionModel; import cc.winboll.studio.positions.models.PositionTaskModel; import cc.winboll.studio.positions.services.MainService; import java.util.ArrayList; +import cc.winboll.studio.libappbase.ToastUtils; +import cc.winboll.studio.positions.utils.AppConfigsUtil; /** * 核心调整说明: @@ -61,11 +63,13 @@ public class LocationActivity extends WinBoLLActivity implements IWinBoLLActivit protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_location); + + LogUtils.d(TAG, "onCreate"); // 1. 初始化服务实例(通过单例/全局方式,避免直接new导致数据重置) initServiceInstance(); // 2. 检查服务状态(未运行/未初始化则提示关闭) - //checkServiceStatus(); + checkServiceStatus(); // 3. 初始化RecyclerView(布局+性能优化) initRecyclerViewConfig(); // 4. 缓存服务数据(从服务PUBLIC方法获取,不访问私有字段) @@ -112,27 +116,27 @@ public class LocationActivity extends WinBoLLActivity implements IWinBoLLActivit finish(); } } + /** * 检查服务状态(替代原绑定检查,通过服务PUBLIC方法判断) */ private void checkServiceStatus() { + LogUtils.d(TAG, "checkServiceStatus"); // 1. 服务实例未初始化 if (mMainService == null) { return; // 已在initServiceInstance中处理,此处避免重复finish } // 2. 检查服务运行状态(通过服务PUBLIC方法isServiceRunning()获取,不访问私有字段) -// if (!mMainService.isServiceRunning()) { -// // 服务未运行:手动触发启动(调用服务PUBLIC方法run()) -// mMainService.run(); -// LogUtils.d(TAG, "服务未运行,已通过PUBLIC方法触发启动"); -// } + if (!mMainService.isServiceRunning()) { + // 服务未运行:手动触发启动(调用服务PUBLIC方法run()) + mMainService.run(); + LogUtils.d(TAG, "服务未运行,已通过PUBLIC方法触发启动"); + } // 3. 检查SP中服务配置(双重校验,确保一致性) - SharedPreferences sp = getSharedPreferences(SP_SERVICE_CONFIG, Context.MODE_PRIVATE); - boolean isServiceConfigRunning = sp.getBoolean(KEY_SERVICE_RUNNING, false); - if (!isServiceConfigRunning) { + if (!AppConfigsUtil.getInstance(LocationActivity.this).isEnableMainService(true)) { Toast.makeText(this, "位置服务配置未启用,数据可能无法更新", Toast.LENGTH_SHORT).show(); } } @@ -142,6 +146,7 @@ public class LocationActivity extends WinBoLLActivity implements IWinBoLLActivit */ private void cacheServiceData() { if (mMainService == null) { + ToastUtils.show("缓存数据失败:服务实例为空"); LogUtils.e(TAG, "缓存数据失败:服务实例为空"); mCachedPositionList = new ArrayList(); mCachedTaskList = new ArrayList(); @@ -156,6 +161,7 @@ public class LocationActivity extends WinBoLLActivity implements IWinBoLLActivit if (mCachedPositionList == null) mCachedPositionList = new ArrayList(); if (mCachedTaskList == null) mCachedTaskList = new ArrayList(); + ToastUtils.show("缓存服务数据成功:位置数=" + mCachedPositionList.size() + ",任务数=" + mCachedTaskList.size()); LogUtils.d(TAG, "缓存服务数据成功:位置数=" + mCachedPositionList.size() + ",任务数=" + mCachedTaskList.size()); } @@ -175,6 +181,7 @@ public class LocationActivity extends WinBoLLActivity implements IWinBoLLActivit * 初始化Adapter(通过缓存数据初始化,数据更新时同步调用服务方法) */ private void initAdapter() { + LogUtils.d(TAG, "initAdapter"); if (mCachedPositionList == null || mCachedTaskList == null) { LogUtils.e(TAG, "初始化Adapter失败:缓存数据为空"); return; diff --git a/positions/src/main/java/cc/winboll/studio/positions/services/MainService.java b/positions/src/main/java/cc/winboll/studio/positions/services/MainService.java index c353b97..caa1398 100644 --- a/positions/src/main/java/cc/winboll/studio/positions/services/MainService.java +++ b/positions/src/main/java/cc/winboll/studio/positions/services/MainService.java @@ -107,7 +107,7 @@ public class MainService extends Service { } - private void run() { + public void run() { if (mAppConfigsUtil.isEnableMainService(true)) { if (_mIsServiceRunning == false) { // 设置运行状态 @@ -135,6 +135,10 @@ public class MainService extends Service { } } } + + public boolean isServiceRunning() { + return _mIsServiceRunning; + } public interface SMSListener { void speakMessage();