Notepad实例学习
总结一下个人经验,高手飘过
1.mimeType-> ContentProvider.getType() 参考sdk
2.mimeType 不一定非是"vnd.company_name.cursor.dir",可以自定义,测试通过。 vnd的意思是vendor-specific:某私人机构专有协议。
3.notepad例子中 livefolder查询notes列表的uri path为"/livefolder/notes"与main activity查询notes列表的uri path"/notes"不同,是为了映射livefolder的字段LiveFolder.NAME.
4.若contentProvider中为SQLiteQueryBuilder设置的projection的key与value不同,则value必须为"[value] AS [key_name]",因为SQLiteQueryBuilder中拼sql时并没有帮开发者完成这个步骤。
5.livefolder Activity是在创建快捷方式时调用,断点调式可知。
6.livefolder Activity中
if (LiveFolders.ACTION_CREATE_LIVE_FOLDER.equals(action)) 是否需要有待商榷,个人认为肯定是相等的,根本不需要这个判断。
7.qb.appendWhere(Notes._ID + "=" + uri.getPathSegments().get(1));获得note_id可以用 uri.getLastPathSegment() 替代
8.provider的 insert(Uri uri, ContentValues initialValues) 方法中,values = new ContentValues();
为什么不用传进来的initialValues而重新new 一个values?因为在后面的代码修改了values对象,若用原来的initialValues,则initialValues被改变数据不一致了。