diff --git a/doc/read_note.docx b/doc/minote.docx similarity index 53% rename from doc/read_note.docx rename to doc/minote.docx index 53ec486..28aa9d7 100644 Binary files a/doc/read_note.docx and b/doc/minote.docx differ diff --git a/src/Notes-master/src/net/micode/notes/tool/BackupUtils.java b/src/Notes-master/src/net/micode/notes/tool/BackupUtils.java index 5a7c0f4..68307f8 100644 --- a/src/Notes-master/src/net/micode/notes/tool/BackupUtils.java +++ b/src/Notes-master/src/net/micode/notes/tool/BackupUtils.java @@ -37,16 +37,17 @@ import java.io.PrintStream;//导入 Java 的打印流(PrintStream)类,用于 //备份的处理 public class BackupUtils { - private static final String TAG = "BackupUtils"; + private static final String TAG = "BackupUtils";//定义了一个私有的静态字符串常量 TAG,用于日志输出。 // Singleton stuff - private static BackupUtils sInstance; + private static BackupUtils sInstance;//定义了一个私有的静态成员变量 sInstance,表示单例对象。 public static synchronized BackupUtils getInstance(Context context) { - if (sInstance == null) { + if (sInstance == null) { //如果当前备份不存在,则新声明一个 - sInstance = new BackupUtils(context); + sInstance = new BackupUtils(context);//并将传入的上下文参数赋值给它 + } - return sInstance; + return sInstance;//。最后返回 sInstance。 } /** @@ -63,38 +64,37 @@ public class BackupUtils { public static final int STATE_SYSTEM_ERROR = 3; // Backup or restore success成功存储 public static final int STATE_SUCCESS = 4; - - private TextExport mTextExport; + //备份或恢复成功。 + private TextExport mTextExport;//声明了一个私有成员变量 mTextExport,表示文本导出对象。 //初始化函数 private BackupUtils(Context context) { mTextExport = new TextExport(context); - } + }//用于初始化 BackupUtils 对象 //外部存储功能是否可用 private static boolean externalStorageAvailable() {//外部存储功能是否可用 return Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState()); - } + }//用于检查外部存储是否可用。它通过比较外部存储的状态是否为 Environment.MEDIA_MOUNTED 来判断外部存储是否可用,并返回布尔值。 // public int exportToText() { return mTextExport.exportToText(); } - +//用于导出数据到文本文件。该方法调用了 mTextExport 对象的 exportToText() 方法,并返回结果。 public String getExportedTextFileName() { return mTextExport.mFileName; } - +// 用于获取导出的文本文件名。该方法返回 mTextExport 对象的 mFileName 属性。 public String getExportedTextFileDir() { return mTextExport.mFileDirectory; } - - private static class TextExport { +// 用于获取导出的文本文件目录。该方法返回 mTextExport 对象的 mFileDirectory 属性。 private static class TextExport { private static final String[] NOTE_PROJECTION = { - NoteColumns.ID, - NoteColumns.MODIFIED_DATE, - NoteColumns.SNIPPET, - NoteColumns.TYPE + NoteColumns.ID,//表示笔记的唯一标识符。 + NoteColumns.MODIFIED_DATE,//表示笔记的修改日期。 + NoteColumns.SNIPPET,//表示笔记的摘要或片段。 + NoteColumns.TYPE//表示笔记的类型。 }; private static final int NOTE_COLUMN_ID = 0; @@ -171,12 +171,16 @@ public class BackupUtils { * Export note identified by id to a print stream */ private void exportNoteToText(String noteId, PrintStream ps) { +// 通过 mContext.getContentResolver().query() 方法查询数据库,获取与指定笔记 ID 相关的数据。 Cursor dataCursor = mContext.getContentResolver().query(Notes.CONTENT_DATA_URI, DATA_PROJECTION, DataColumns.NOTE_ID + "=?", new String[] { noteId }, null); - if (dataCursor != null) { //利用光标来扫描内容,区别为callnote和note两种,靠ps.printline输出 +// if (dataCursor != null) { //利用光标来扫描内容,区别为callnote和note两种,靠ps.printline输出 +// 如果类型为 DataConstants.CALL_NOTE,则获取电话号码、通话时间、附件位置等信息,并使用 ps.println() 方法输出到文本文件中。 +// 如果类型为 DataConstants.NOTE,则获取笔记内容信息,并使用 ps.println() 方法输出到文本文件中。 +// 在每个笔记结束后,输出一行分隔符(由 Character.LINE_SEPARATOR, Character.LETTER_NUMBER 组成),以便区分不同笔记的内容 if (dataCursor.moveToFirst()) { do { String mimeType = dataCursor.getString(DATA_COLUMN_MIME_TYPE); @@ -211,7 +215,7 @@ public class BackupUtils { dataCursor.close(); } // print a line separator between note - try { + try {//如果在输出时发生异常,则会记录日志。 ps.write(new byte[] { Character.LINE_SEPARATOR, Character.LETTER_NUMBER });