Delete 'gtask/GTaskSyncService.java'

main
pasky49wx 2 months ago
parent 6ab8009d04
commit bbf8e463de

@ -1,181 +0,0 @@
/*
* Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net)
*
* MiCodeApache License, Version 2.0
* 使
* http://www.apache.org/licenses/LICENSE-2.0
* "原样"
*/
package net.micode.notes.gtask.remote;
import android.app.Activity;
import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.os.IBinder;
/**
* Google
* 广
*/
public class GTaskSyncService extends Service {
// 服务意图中传递的动作类型键名
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;
// 同步状态广播的Action名称用于发送同步状态通知
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";
// 广播中传递的"进度消息"键名
public final static String GTASK_SERVICE_BROADCAST_PROGRESS_MSG = "progressMsg";
// 当前运行的异步同步任务实例(静态变量,全局唯一)
private static GTaskASyncTask mSyncTask = null;
// 当前同步进度的文本描述(静态变量,记录最新进度)
private static String mSyncProgress = "";
/**
*
*
*/
private void startSync() {
if (mSyncTask == null) { // 避免重复启动同步任务
// 创建异步任务实例,传入服务上下文和完成监听器
mSyncTask = new GTaskASyncTask(this, new GTaskASyncTask.OnCompleteListener() {
@Override
public void onComplete() {
// 同步完成后:清空任务实例 -> 发送广播 -> 停止服务自身
mSyncTask = null;
sendBroadcast(""); // 发送同步结束的广播(进度消息为空)
stopSelf(); // 停止当前服务
}
});
sendBroadcast(""); // 发送同步开始的广播(进度消息为空)
mSyncTask.execute(); // 执行异步同步任务(触发后台同步逻辑)
}
}
/**
*
*
*/
private void cancelSync() {
if (mSyncTask != null) {
mSyncTask.cancelSync(); // 触发异步任务的取消逻辑
}
}
/**
*
*
*/
@Override
public void onCreate() {
mSyncTask = null; // 清空同步任务实例
}
/**
*
* /
* @param intent
* @param flags START_FLAG_REDELIVERY
* @param startId ID
* @return START_STICKY
*/
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Bundle bundle = intent.getExtras(); // 获取意图携带的参数包
if (bundle != null && bundle.containsKey(ACTION_STRING_NAME)) {
// 根据动作类型执行操作
switch (bundle.getInt(ACTION_STRING_NAME, ACTION_INVALID)) {
case ACTION_START_SYNC: // 启动同步
startSync();
break;
case ACTION_CANCEL_SYNC: // 取消同步
cancelSync();
break;
default: // 无效动作,不处理
break;
}
return START_STICKY; // 服务意外终止后自动重启
}
return super.onStartCommand(intent, flags, startId);
}
/**
*
*
*/
@Override
public void onLowMemory() {
if (mSyncTask != null) {
mSyncTask.cancelSync(); // 内存不足时强制取消同步任务
}
}
/**
*
* @param intent
* @return null
*/
public IBinder onBind(Intent intent) {
return null;
}
/**
* 广
* @param msg "正在初始化任务列表..."
*/
public void sendBroadcast(String msg) {
mSyncProgress = msg; // 更新全局进度信息
Intent intent = new Intent(GTASK_SERVICE_BROADCAST_NAME); // 创建广播意图
intent.putExtra(GTASK_SERVICE_BROADCAST_IS_SYNCING, mSyncTask != null); // 是否同步中任务存在则为true
intent.putExtra(GTASK_SERVICE_BROADCAST_PROGRESS_MSG, msg); // 传递进度消息
sendBroadcast(intent); // 发送广播
}
/**
*
* @param activity ActivityGTaskManagerActivity
*/
public static void startSync(Activity activity) {
GTaskManager.getInstance().setActivityContext(activity); // 设置GTaskManager的Activity用于获取认证令牌
Intent intent = new Intent(activity, GTaskSyncService.class); // 创建启动服务的意图
intent.putExtra(GTaskSyncService.ACTION_STRING_NAME, GTaskSyncService.ACTION_START_SYNC); // 传递启动同步动作
activity.startService(intent); // 启动服务
}
/**
*
* @param context
*/
public static void cancelSync(Context context) {
Intent intent = new Intent(context, GTaskSyncService.class); // 创建启动服务的意图
intent.putExtra(GTaskSyncService.ACTION_STRING_NAME, GTaskSyncService.ACTION_CANCEL_SYNC); // 传递取消同步动作
context.startService(intent); // 启动服务(触发取消逻辑)
}
/**
*
* @return truefalse
*/
public static boolean isSyncing() {
return mSyncTask != null; // 通过任务实例是否存在判断
}
/**
*
* @return "正在同步笔记..."
*/
public static String getProgressString() {
return mSyncProgress; // 返回全局进度变量
}
}
Loading…
Cancel
Save