From 520dd5651692d1ce9faec2d4217df0034643140f Mon Sep 17 00:00:00 2001 From: hejunjie Date: Mon, 22 Jan 2024 19:45:34 +0800 Subject: [PATCH] hejunjie is reading --- .../notes/gtask/remote/GTaskASyncTask.java | 20 ++++++++++--------- .../notes/gtask/remote/GTaskSyncService.java | 15 +++++++++++--- 2 files changed, 23 insertions(+), 12 deletions(-) diff --git a/src/net/micode/notes/gtask/remote/GTaskASyncTask.java b/src/net/micode/notes/gtask/remote/GTaskASyncTask.java index b3b61e7..7a1d29f 100644 --- a/src/net/micode/notes/gtask/remote/GTaskASyncTask.java +++ b/src/net/micode/notes/gtask/remote/GTaskASyncTask.java @@ -28,7 +28,7 @@ import net.micode.notes.R; import net.micode.notes.ui.NotesListActivity; import net.micode.notes.ui.NotesPreferenceActivity; - +//异步操作类,实现GTask的异步操作过程 public class GTaskASyncTask extends AsyncTask { private static int GTASK_SYNC_NOTIFICATION_ID = 5234235; @@ -62,7 +62,8 @@ public class GTaskASyncTask extends AsyncTask { message }); } - + + //向用户提示当前同步的状态 private void showNotification(int tickerId, String content) { Notification notification = new Notification(R.drawable.notification, mContext .getString(tickerId), System.currentTimeMillis()); @@ -71,22 +72,23 @@ public class GTaskASyncTask extends AsyncTask { PendingIntent pendingIntent; if (tickerId != R.string.ticker_success) { pendingIntent = PendingIntent.getActivity(mContext, 0, new Intent(mContext, - NotesPreferenceActivity.class), 0); + NotesPreferenceActivity.class), 0); //如果同步不成功,那么从系统取得一个用于启动一个NotesPreferenceActivity的PendingIntent对象 } else { pendingIntent = PendingIntent.getActivity(mContext, 0, new Intent(mContext, - NotesListActivity.class), 0); + NotesListActivity.class), 0); //如果同步成功,那么从系统取得一个用于启动一个NotesListActivity的PendingIntent对象 } notification.setLatestEventInfo(mContext, mContext.getString(R.string.app_name), content, pendingIntent); mNotifiManager.notify(GTASK_SYNC_NOTIFICATION_ID, notification); } + //完成任务的主要工作 @Override protected Integer doInBackground(Void... unused) { publishProgess(mContext.getString(R.string.sync_progress_login, NotesPreferenceActivity - .getSyncAccountName(mContext))); - return mTaskManager.sync(mContext, this); + .getSyncAccountName(mContext)));//利用getString,将把 NotesPreferenceActivity.getSyncAccountName(mContext))的字符串内容传进sync_progress_login中 + return mTaskManager.sync(mContext, this); //进行后台同步具体操作 } @Override @@ -98,7 +100,7 @@ public class GTaskASyncTask extends AsyncTask { } @Override - protected void onPostExecute(Integer result) { + protected void onPostExecute(Integer result) { //用于在执行完后台任务后更新UI,显示结果 if (result == GTaskManager.STATE_SUCCESS) { showNotification(R.string.ticker_success, mContext.getString( R.string.success_sync_account, mTaskManager.getSyncAccount())); @@ -110,11 +112,11 @@ public class GTaskASyncTask extends AsyncTask { } else if (result == GTaskManager.STATE_SYNC_CANCELLED) { showNotification(R.string.ticker_cancel, mContext .getString(R.string.error_sync_cancelled)); - } + }//几种不同情况下的结果显示 if (mOnCompleteListener != null) { new Thread(new Runnable() { - public void run() { + public void run() {//完成后的操作,使用onComplete()将所有值都重新初始化,相当于完成一次操作 mOnCompleteListener.onComplete(); } }).start(); diff --git a/src/net/micode/notes/gtask/remote/GTaskSyncService.java b/src/net/micode/notes/gtask/remote/GTaskSyncService.java index cca36f7..a56934e 100644 --- a/src/net/micode/notes/gtask/remote/GTaskSyncService.java +++ b/src/net/micode/notes/gtask/remote/GTaskSyncService.java @@ -42,6 +42,7 @@ public class GTaskSyncService extends Service { private static String mSyncProgress = ""; + //开始一个同步的工作 private void startSync() { if (mSyncTask == null) { mSyncTask = new GTaskASyncTask(this, new GTaskASyncTask.OnCompleteListener() { @@ -52,10 +53,11 @@ public class GTaskSyncService extends Service { } }); sendBroadcast(""); - mSyncTask.execute(); + mSyncTask.execute(); ////这个函数让任务是以单线程队列方式或线程池队列方式运行 } } + //取消同步 private void cancelSync() { if (mSyncTask != null) { mSyncTask.cancelSync(); @@ -72,6 +74,7 @@ public class GTaskSyncService extends Service { 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; @@ -86,6 +89,7 @@ public class GTaskSyncService extends Service { return super.onStartCommand(intent, flags, startId); } + //在没有内存的情况下如果存在service则结束掉service @Override public void onLowMemory() { if (mSyncTask != null) { @@ -97,31 +101,36 @@ public class GTaskSyncService extends Service { return null; } + //发送同步的相关通知 public void sendBroadcast(String msg) { mSyncProgress = msg; - Intent intent = new Intent(GTASK_SERVICE_BROADCAST_NAME); + Intent intent = new Intent(GTASK_SERVICE_BROADCAST_NAME); //创建一个新的Intent intent.putExtra(GTASK_SERVICE_BROADCAST_IS_SYNCING, mSyncTask != null); intent.putExtra(GTASK_SERVICE_BROADCAST_PROGRESS_MSG, msg); sendBroadcast(intent); } + //执行开始同步的操作 public static void startSync(Activity activity) { GTaskManager.getInstance().setActivityContext(activity); Intent intent = new Intent(activity, GTaskSyncService.class); intent.putExtra(GTaskSyncService.ACTION_STRING_NAME, GTaskSyncService.ACTION_START_SYNC); activity.startService(intent); } - + + //执行取消同步的操作 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); } + //判断是否在进行同步 public static boolean isSyncing() { return mSyncTask != null; } + //获取当前进度的信息 public static String getProgressString() { return mSyncProgress; }