From 17919665496a057c4a09bed2db37b7f31edfdb1e Mon Sep 17 00:00:00 2001 From: pkxp3nvt2 <2075698549@qq.com> Date: Fri, 16 May 2025 10:15:15 +0800 Subject: [PATCH] Update GTaskSyncService.java --- .../notes/gtask/remote/GTaskSyncService.java | 53 ++++++++++++------- 1 file changed, 35 insertions(+), 18 deletions(-) diff --git a/源程序代码-小米便签-Notes-master/Notes-master/src/net/micode/notes/gtask/remote/GTaskSyncService.java b/源程序代码-小米便签-Notes-master/Notes-master/src/net/micode/notes/gtask/remote/GTaskSyncService.java index cca36f7..e7ae0f4 100644 --- a/源程序代码-小米便签-Notes-master/Notes-master/src/net/micode/notes/gtask/remote/GTaskSyncService.java +++ b/源程序代码-小米便签-Notes-master/Notes-master/src/net/micode/notes/gtask/remote/GTaskSyncService.java @@ -15,7 +15,7 @@ */ package net.micode.notes.gtask.remote; - +// 导入Android系统组件相关类 import android.app.Activity; import android.app.Service; import android.content.Context; @@ -24,14 +24,15 @@ import android.os.Bundle; import android.os.IBinder; public class GTaskSyncService extends Service { + // 同步操作类型的Intent参数名(用于区分启动/取消操作) public final static String ACTION_STRING_NAME = "sync_action_type"; - +// 同步操作类型常量定义 public final static int ACTION_START_SYNC = 0; public final static int ACTION_CANCEL_SYNC = 1; public final static int ACTION_INVALID = 2; - +// 同步状态广播相关常量 public final static String GTASK_SERVICE_BROADCAST_NAME = "net.micode.notes.gtask.remote.gtask_sync_service"; public final static String GTASK_SERVICE_BROADCAST_IS_SYNCING = "isSyncing"; @@ -41,55 +42,60 @@ public class GTaskSyncService extends Service { private static GTaskASyncTask mSyncTask = null; private static String mSyncProgress = ""; - +// 检查是否已有同步任务运行(避免重复启动) private void startSync() { if (mSyncTask == null) { + // 创建异步同步任务实例(传入服务上下文和完成监听器) mSyncTask = new GTaskASyncTask(this, new GTaskASyncTask.OnCompleteListener() { public void onComplete() { + // 同步完成时:清空任务实例 → 发送广播 → 停止服 mSyncTask = null; - sendBroadcast(""); - stopSelf(); + sendBroadcast("");// 发送同步结束广播(进度信息为空) + stopSelf();// 停止当前服务(释放资源) } }); - sendBroadcast(""); - mSyncTask.execute(); + sendBroadcast("");// 发送同步开始广播(进度信息为空) + mSyncTask.execute(); // 执行异步同步任务(触发后台同步逻辑) } } private void cancelSync() { if (mSyncTask != null) { - mSyncTask.cancelSync(); + mSyncTask.cancelSync();// 调用异步任务的取消方法(终止同步) } } @Override public void onCreate() { - mSyncTask = null; + mSyncTask = null;// 确保服务创建时无残留的同步任务 } @Override public int onStartCommand(Intent intent, int flags, int startId) { + // 从Intent中提取参数Bundle Bundle bundle = intent.getExtras(); if (bundle != null && bundle.containsKey(ACTION_STRING_NAME)) { + // 根据ACTION_STRING_NAME参数判断操作类型 switch (bundle.getInt(ACTION_STRING_NAME, ACTION_INVALID)) { - case ACTION_START_SYNC: + case ACTION_START_SYNC: // 启动同步 startSync(); break; - case ACTION_CANCEL_SYNC: + case ACTION_CANCEL_SYNC:// 取消同步 cancelSync(); break; - default: + default:// 无效操作类型(忽略) break; } - return START_STICKY; + return START_STICKY;// 服务被终止后自动重启 } + // 未传递有效参数时,调用父类方法(默认处理) return super.onStartCommand(intent, flags, startId); } @Override public void onLowMemory() { if (mSyncTask != null) { - mSyncTask.cancelSync(); + mSyncTask.cancelSync();// 内存不足时强制取消同步任务 } } @@ -98,24 +104,35 @@ public class GTaskSyncService extends Service { } public void sendBroadcast(String msg) { - mSyncProgress = msg; + mSyncProgress = msg;// 更新全局进度信息 + // 创建广播Intent Intent intent = new Intent(GTASK_SERVICE_BROADCAST_NAME); + // 添加Extra参数:是否正在同步 intent.putExtra(GTASK_SERVICE_BROADCAST_IS_SYNCING, mSyncTask != null); + // 添加Extra参数:当前进度信息 intent.putExtra(GTASK_SERVICE_BROADCAST_PROGRESS_MSG, msg); + // 发送广播 sendBroadcast(intent); } public static void startSync(Activity activity) { + // 设置GTaskManager的上下文 GTaskManager.getInstance().setActivityContext(activity); + // 创建启动服务的Intent Intent intent = new Intent(activity, GTaskSyncService.class); + // 传递操作类型:启动同步 intent.putExtra(GTaskSyncService.ACTION_STRING_NAME, GTaskSyncService.ACTION_START_SYNC); - activity.startService(intent); + // 启动服务 + activity.startService(intent); } public static void cancelSync(Context context) { + // 创建启动服务的Intent Intent intent = new Intent(context, GTaskSyncService.class); + // 传递操作类型:取消同步 intent.putExtra(GTaskSyncService.ACTION_STRING_NAME, GTaskSyncService.ACTION_CANCEL_SYNC); - context.startService(intent); + // 启动服务 + context.startService(intent); } public static boolean isSyncing() {