    //创建新笔记
	private void createNewNote() {
        //调用了saveNote()方法来保存当前正在编辑的笔记
        saveNote();

		//通过finish()方法结束当前的活动。
        finish();
        Intent intent = new Intent(this, NoteEditActivity.class);
		//创建了一个新的Intent对象，用于启动NoteEditActivity
        intent.setAction(Intent.ACTION_INSERT_OR_EDIT);
		//设置了ACTION_INSERT_OR_EDIT动作以告知NoteEditActivity是要插入新笔记还是编辑已有笔记
        intent.putExtra(Notes.INTENT_EXTRA_FOLDER_ID, mWorkingNote.getFolderId());
		//通过putExtra()方法传递了Notes.INTENT_EXTRA_FOLDER_ID键和mWorkingNote.getFolderId()值，用于确定新笔记所属的文件夹。
        startActivity(intent);
		//通过startActivity()方法启动了新的NoteEditActivity
    }
	
	
	//保存笔记
	public synchronized boolean saveNote() {//使用synchronized关键字进行了同步，以确保在多线程环境下对该方法的安全调用。
        if (isWorthSaving()) {//首先调用isWorthSaving()方法来检查当前笔记是否值得保存
            if (!existInDatabase()) {//如果值得保存，接着会调用existInDatabase()方法来检查当前笔记是否已经存在于数据库中
                if ((mNoteId = Note.getNewNoteId(mContext, mFolderId)) == 0) {//如果不存在，会调用Note.getNewNoteId()方法来获取一个新的笔记ID，并进行相应的处理
                    Log.e(TAG, "Create new note fail with id:" + mNoteId);
                    return false;
                }
            }

            mNote.syncNote(mContext, mNoteId);//然后调用mNote.syncNote(mContext, mNoteId)方法来同步笔记内容到数据库中。

            /**
             * 检查是否存在任何关联于该笔记的小部件（widget）
             */
            if (mWidgetId != AppWidgetManager.INVALID_APPWIDGET_ID
                    && mWidgetType != Notes.TYPE_WIDGET_INVALIDE
                    && mNoteSettingStatusListener != null) {
                mNoteSettingStatusListener.onWidgetChanged();//如果存在，则会调用mNoteSettingStatusListener.onWidgetChanged()方法来更新小部件的内容。
            }
            return true;
        } else {
            return false;
        }
    }
	
	//判断笔记是否值得保存
	public boolean isWorthSaving() {
		/**
		 * 判断了mMetaInfo是否不为null，如果满足条件，则表示笔记元信息不为null，因此认为值得保存。
		 * 其次，使用了条件逻辑运算符||，判断了如果getName()返回的名称不为null并且去除两端空格后长度大于0，或者getNotes()返回的笔记内容不为null并且去除两端空格后长度大于0，则认为值得保存。
		 * 综合这些条件，只要满足其中任意一个条件（或者多个条件），即认为笔记是值得保存的，方法返回true，否则返回false
		 */
        return mMetaInfo != null || (getName() != null && getName().trim().length() > 0)
                || (getNotes() != null && getNotes().trim().length() > 0);
				//综合考虑了笔记的元信息、名称和内容等判断信息
    }

	//检查当前笔记是否存在于数据库中
    public boolean existInDatabase() {
		/**
		 * 判断了笔记的ID（mNoteId）是否大于0，若满足条件，则返回true，表示笔记在数据库中已存在；否则返回false，表示笔记在数据库中不存在。
		 * 数据库中的ID是从1开始递增的，所以只有当mNoteId大于0时，才能说明该笔记已经存在于数据库中
		 */
			
        return mNoteId > 0;
    }
	
	//获取FolderId（文件夹ID）
	public long getFolderId() {
        return mFolderId;//返回了成员变量mFolderId的值，这是一个长整型（long）的数据类型。
    }
	
	public static final String INTENT_EXTRA_FOLDER_ID = "net.micode.notes.folder_id";
	/**
	 * 用于在Activity之间传递数据时作为Intent的extra数据的键值。通过使用常量来声明键值，可以确保在不同的地方使用相同的key，避免因为拼写错误而导致的bug。
	 * 常量名称为INTENT_EXTRA_FOLDER_ID，类型为String，值为"net.micode.notes.folder_id"。
	 */
	 
	 
    @NonNull//@NonNull 和 @Nullable 注解指定了 name 不可为空，而 value 可以为空。
	//在 Intent 中添加额外数据,通过将一个名为 name 的参数与一个长整型数组 value 相关联，并将其添加到 Intent 中
    public Intent putExtra(String name, @Nullable long[] value) {
        throw new RuntimeException("Stub!");//表明这段代码可能是一个框架或库中的临时实现，在真正的代码中会有对应的实际逻辑
    }