diff --git a/README.md b/README.md index 0c17b26..cc0bb1f 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,6 @@ +<<<<<<< HEAD # xiaominotes +======= +# Notes +>>>>>>> wangmingqiang_branch diff --git a/doc/实践模板-开源软件泛读、标注和维护报告文档.docx b/doc/实践模板-开源软件泛读、标注和维护报告文档.docx new file mode 100644 index 0000000..10af25c Binary files /dev/null and b/doc/实践模板-开源软件泛读、标注和维护报告文档.docx differ diff --git a/doc/实践模板-开源软件泛读、标注和维护报告文档(修改版).docx b/doc/实践模板-开源软件泛读、标注和维护报告文档(修改版).docx new file mode 100644 index 0000000..f70d186 Binary files /dev/null and b/doc/实践模板-开源软件泛读、标注和维护报告文档(修改版).docx differ diff --git a/doc/实践模板-开源软件泛读、标注和维护报告文档(最终版).docx b/doc/实践模板-开源软件泛读、标注和维护报告文档(最终版).docx new file mode 100644 index 0000000..20f25a0 Binary files /dev/null and b/doc/实践模板-开源软件泛读、标注和维护报告文档(最终版).docx differ diff --git a/src/GTaskASyncTask.java b/src/GTaskASyncTask.java deleted file mode 100644 index b7e17cb..0000000 --- a/src/GTaskASyncTask.java +++ /dev/null @@ -1,216 +0,0 @@ -/** - * @ProiectName:MiNote - * @Package: gtask.remote - * @ClassName: GTaskASyncTask - * @Description:GTaskASyncTask类是一个异步任务类,用于执行后台任务并在UI线程更新相关的UI组件。 - * 其功能包括1.后台任务的执行:例如从服务器获取数据、执行文件读写操作等。这些任务将在后台线程中执行,避免在UI线程中执行耗时操作而阻塞UI响应。 - * 2.进度更新和反馈:在任务执行过程中,GTaskASyncTask类可以通过调用publishProgress()方法更新任务的进度, - * 并且在UI线程中回调onProgressUpdate()方法,以便更新相关的UI组件 - * 3.结果返回和处理:当任务执行完成后,GTaskASyncTask类会将执行结果返回给UI线程,并在UI线程中回调onPostExecute()方法。 - * 在该方法中,可以根据任务执行结果更新UI组件、执行其他操作或显示提示信息。 - * @Author: wmq -*/ - -package net.micode.notes.gtask.remote; - -import android.app.Notification; -import android.app.NotificationManager; -import android.app.PendingIntent; -import android.content.Context; -import android.content.Intent; -import android.os.AsyncTask; - -import net.micode.notes.R; -import net.micode.notes.ui.NotesListActivity; -import net.micode.notes.ui.NotesPreferenceActivity; - -/** - * @功能名: 定义名为GTaskASyncTask的类,并声明了一些成员变量和内部接口 - * @参数 : - * mContext:上下文对象,用于获取系统服务。 - * mNotifiManager:通知管理器,用于发送通知。 - * mTaskManager:GTaskManager的实例,用于管理任务。 - * mOnCompleteListener:任务完成的回调接口。 - * @功能描述:通过在GTaskASyncTask类中声明这些成员变量和内部接口, - * 可以在异步任务的执行过程中使用上下文、通知管理器和任务管理器等资源, - * 并在任务完成时回调通知调用者。这样可以更好地管理和控制异步任务的执行,并提供灵活的任务完成回调机制。 - * @实现过程: - * @Author: wmq -*/ -public class GTaskASyncTask extends AsyncTask {//执行的任务可以接收Void类型的输入参数,发布String类型的进度信息,最终返回Integer类型的结果。 - - private static int GTASK_SYNC_NOTIFICATION_ID = 5234235;//静态变量,用于标识通知的ID。通常用于发送通知时唯一标识通知的标识符。 - - public interface OnCompleteListener {//内部接口,定义了一个回调方法onComplete()。当任务完成时,可以通过实现该接口,在任务完成时进行回调通知。 - void onComplete(); - } - - private Context mContext; - - private NotificationManager mNotifiManager; - - private GTaskManager mTaskManager; - - private OnCompleteListener mOnCompleteListener; - -/** - * @功能名: GTaskASyncTask - * @参数 : context/listener - * @功能描述: 是本类的构造函数,)接收一个上下文对象作为参数,并在构造函数内部进行了一些初始化操作 - * @实现过程: 见每一行后面 - * @Author: wmq -*/ - public GTaskASyncTask(Context context, OnCompleteListener listener) { - mContext = context; //将传入的OnCompleteListener接口的实例赋值给成员变量mOnCompleteListener。用于在任务完成时回调通知调用者。 - mOnCompleteListener = listener; - mNotifiManager = (NotificationManager) mContext - .getSystemService(Context.NOTIFICATION_SERVICE);//通过上下文对象获取通知管理器的实例。该通知管理器用于发送通知。 - mTaskManager = GTaskManager.getInstance();//:通过调用GTaskManager类的静态方法getInstance()获取GTaskManager的单例实例。mTaskManager用于管理任务的执行。 - } -/** - * @功能名: cancelSync() - * @参数 : - * @功能描述: 取消正在进行的同步任务 - * @实现过程: 通过调用mTaskManager的cancelSync()方法来取消同步任务 - * 某些情况下,用户需要停止或取消当前正在执行的任务,例如用户手动取消了同步操作或者发生了异常情况需要终止任务 - * @Author: wmq -*/ - - public void cancelSync() { - mTaskManager.cancelSync(); - } -/** - * @功能名: publishProgess - * @参数 :message - * @功能描述: 用于发布任务执行的进度信息,在异步任务的执行过程中,有时需要将一些进度信息反馈给用户, - * 可以通过调用publishProgress()方法来实现。该方法会在UI线程调用onProgressUpdate()方法,从而更 - * 新UI界面上的进度信息。 - * @实现过程: publishProgess方法重载了AsyncTask类中的publishProgress()方法, - * 并将传入的message作为进度信息进行发布。这样,外部调用者就可以通过调用GTaskASyncTask - * 对象的publishProgess()方法来发布任务的执行进度信息,从而实现任务进度的实时反馈。 - * @Author: wmq -*/ - public void publishProgess(String message) {// 发布进度单位,系统将会调用onProgressUpdate()方法更新这些值 - publishProgress(new String[] { - message - }); - } - - /* private void showNotification(int tickerId, String content) { - Notification notification = new Notification(R.drawable.notification, mContext - .getString(tickerId), System.currentTimeMillis()); - notification.defaults = Notification.DEFAULT_LIGHTS; - notification.flags = Notification.FLAG_AUTO_CANCEL; - PendingIntent pendingIntent; - if (tickerId != R.string.ticker_success) { - pendingIntent = PendingIntent.getActivity(mContext, 0, new Intent(mContext, - NotesPreferenceActivity.class), 0); - - } else { - pendingIntent = PendingIntent.getActivity(mContext, 0, new Intent(mContext, - NotesListActivity.class), 0); - } - //notification.setLatestEventInfo(mContext, mContext.getString(R.string.app_name), content, - // pendingIntent); - notification.contentIntent = pendingIntent; - mNotifiManager.notify(GTASK_SYNC_NOTIFICATION_ID, notification); - }*/ - /** - * @功能名: showNotification - * @参数 :int tickerId / String content - * @功能描述: - * 根据传入的tickerId参数判断通知的类型: - * 使用Notification.Builder类来构建通知: - * 通过调用builder.getNotification()方法获取构建的通知对象; - * 最后使用mNotifiManager.notify()方法发送通知 - * @实现过程: 如果tickerId不等于R.string.ticker_success(即不是成功的通知),则创建一个将跳转到 - * NotesPreferenceActivity类的PendingIntent对象。如果tickerId等于R.string.ticker_success - * (即成功的通知),则创建一个将跳转到NotesListActivity类的PendingIntent对象。 - * @Author: wmq - */ - private void showNotification(int tickerId, String content) { - - PendingIntent pendingIntent; - - if (tickerId != R.string.ticker_success) { - - pendingIntent = PendingIntent.getActivity(mContext, 0, new Intent(mContext, - - NotesPreferenceActivity.class), 0); - - } else { - - pendingIntent = PendingIntent.getActivity(mContext, 0, new Intent(mContext, - - NotesListActivity.class), 0); - - } - - Notification.Builder builder = new Notification.Builder(mContext) - - .setAutoCancel(true) //设置通知点击后自动取消 - - .setContentTitle(mContext.getString(R.string.app_name))//设置通知的标题为应用名称。 - - .setContentText(content)//设置通知的内容为传入的content参数。 - - .setContentIntent(pendingIntent)//设置通知点击时的跳转意图为之前创建的PendingIntent对象。 - - .setWhen(System.currentTimeMillis())//时间设置 - - .setOngoing(true);//用户无法手动清除 - - Notification notification=builder.getNotification(); - - mNotifiManager.notify(GTASK_SYNC_NOTIFICATION_ID, notification);//将通知显示在系统通知栏中。其中GTASK_SYNC_NOTIFICATION_ID作为通知的ID,可以用于标识该通知。 - - } - - /** - * @功能名: doInBackground - * @参数 : unused - * @功能描述: 用于在后台执行耗时操作,如网络请求、数据库查询等任务。 - * @实现过程: @Override注解表示该方法是对父类(AsyncTask)中的方法进行重写 - *在执行过程中可以调用publishProgress()方法来更新异步任务的执行进度。 - *最后返回同步操作的结果,通常是一个代表同步状态的整数值。 - * @Author: wmq - */ - @Override - protected void onProgressUpdate(String... progress) { - showNotification(R.string.ticker_syncing, progress[0]); - if (mContext instanceof GTaskSyncService) { - ((GTaskSyncService) mContext).sendBroadcast(progress[0]); - } - } - - /** - * @功能名: onPostExecute - * @参数 : result - * @功能描述: 用于在后台操作完成后执行一些操作,通常是更新UI界面或者执行回调函数。 - * @实现过程: 利用result进行不同状态的判断,并执行相应的方法,具体在下面标注 - * @Author: wmq - */ - @Override //表示该方法是对父类(AsyncTask)中的方法进行重写 - protected void onPostExecute(Integer result) { //这表示该方法接收一个Integer类型的参数result,表示后台操作的结果。 - if (result == GTaskManager.STATE_SUCCESS) { //表示同步操作成功,那么会显示一个通知,更新上次同步时间,并执行NotesPreferenceActivity.setLastSyncTime()方法保存最新的同步时间。 - showNotification(R.string.ticker_success, mContext.getString( - R.string.success_sync_account, mTaskManager.getSyncAccount())); - NotesPreferenceActivity.setLastSyncTime(mContext, System.currentTimeMillis()); - } else if (result == GTaskManager.STATE_NETWORK_ERROR) { //表示网络错误,会显示一个通知,提示同步时发生网络错误。 - showNotification(R.string.ticker_fail, mContext.getString(R.string.error_sync_network)); - } else if (result == GTaskManager.STATE_INTERNAL_ERROR) { //表示内部错误,会显示一个通知,提示同步时发生内部错误。如果result等于 - showNotification(R.string.ticker_fail, mContext.getString(R.string.error_sync_internal)); - } else if (result == GTaskManager.STATE_SYNC_CANCELLED) { //表示同步被取消,会显示一个通知,提示同步被取消。 - showNotification(R.string.ticker_cancel, mContext - .getString(R.string.error_sync_cancelled)); - } - if (mOnCompleteListener != null) { //如果存在mOnCompleteListener回调函数对象,会在新的线程中执行mOnCompleteListener.onComplete()方法。 - new Thread(new Runnable() { - - public void run() { - mOnCompleteListener.onComplete(); - } - }).start(); - } - } -}