草庐IT

contentprovider

全部标签

android - 从 contentprovider 中删除多行

我试图从我的内容提供者中删除两行,但没有成功。这是查询;introwdelted=con.getContentResolver().delete(CONTENT_URI,clausole,null);其中clausole是一个字符串,如“_ID=100AND_ID=101AND_ID=102”。有什么问题吗?提前致谢 最佳答案 每一行都有1个ID,尝试删除ID为100、101和102的单个行是行不通的。您可能想对这些值进行“或”运算。Stringclausole="_ID=100OR_ID=101OR_ID=102";

android - ContentProvider线程

只是好奇。getContentResolver().query(...)我知道加载程序在后台线程上运行查询。这是否也适用于插入、更新和删除?我应该为这些类型的调用创建AsyncTasks、Threads等吗?大型更新可能会阻塞我的应用程序的主线程。getContentResolver().insert(...)谢谢! 最佳答案 来自ContentProviderBasicsRetrievingDatafromtheProviderThissectiondescribeshowtoretrievedatafromaprovider,u

android - 与普通的 SQLIte 存储相比,使用 ContentProvider 有什么优势?

我想在多个应用程序之间共享数据,而不是使用ContentResolver->ContentProvider机制,我可以只定义一个客户端库,它与执行SQLite数据库操作的进程对话,对吗?ContentProvider带来了什么,而我们不能通过让Process公开数据来实现? 最佳答案 你可以找到答案ExactDifferencebetween“Content-Provider”and“SQLiteDatabase”.但我想解释一下..WhatdoestheContentProviderbringsinherewhichwecanno

android - 使用 ContentProvider 插入到多个表

我正在实现一个PRIVATEContentProvider,它具有很少的关系表(一对多、多对多)。在我当前的实现中,所有表都可以通过URI访问。我怎样才能简化界面,使内部的“直通”表不必通过URI访问?比如我有一个POSTS表,每个POST通过TAGGINGS表有很多TAGS。我只想与POSTSURI交互,并在ContentProvider中进行“私有(private)”工作。对于query返回一个带有连接表的游标很简单,但是我如何使用insert做到这一点?bulkInsert是我应该研究的内容吗? 最佳答案 这是ContentP

android - 读取 com.google.android.apps.photos.contentprovider.MediaContentProvider 需要导出提供者,或者 grantUriPermission()

我从Android6.0.1用户那里收到了这份崩溃报告:STACK_TRACE=java.lang.SecurityException:PermissionDenial:readingcom.google.android.apps.photos.contentprovider.MediaContentProvideruricontent://com.google.android.apps.photos.contentprovider/0/1/content%3A%2F%2Fmedia%2Fexternal%2Fimages%2Fmedia%2F19181/ORIGINAL/NONE/4

android - Android BroadcastReceiver、ContentProvider 和 Activity 之间的数据流?

我开发了一个接收广播的应用程序,然后启动一个Activity,其中Activity查询一个ContentProvider实时从DNS中提取信息。我希望能够对此进行洗牌,而不是去:BroadcastReceiver.onReceive(){Intentintent=newIntent(...);intent.setData(...);//setasingleStringdatacontext.startActivity(intent);}Activity.onCreate(){Stringvalue=intent.getData();//gettheStringdataCursor=Co

android - 如何实现只读的ContentProvider?

我想知道如何最好地实现只读ContentProvider。我希望仅通过我的ContentProvider的其他特殊方法(当然不能通过ContentResolver访问)从我自己的应用程序中修改我的数据源。换句话说,其他应用程序应该只能使用我的ContentProvider的查询方法,而不能插入、删除或更新。明显的解决方案似乎是只返回null/0/0并且在插入/删除/更新中不做任何其他事情。总是在这些方法中抛出Exception以便清楚地传达不允许这些操作会更好吗?或者是否有可能仅通过权限将对ContentProvider的访问限制为查询方法? 最佳答案

Android ContentProvider读写权限

权限似乎没有任何区别...在list中,我只有一个(permission.INTERNET),我有两个元素:然后是提供者:现在,我可以正常访问ContentProvider,而且效果很好。如果我不使用强制执行,为什么它会起作用??提供者所在的应用程序中是否也不需要它宣布?正在添加有我自己的权限没有区别。权限甚至没有在应用程序信息中列出。为什么?ps.:是的,我已经阅读了关于SO和Google网上论坛的问题(也有Hackborn回答的问题)。我已经按照(如您所见)到处描述的内容进行了操作,但仍然...您可以说它正在工作,但关键是我想看看它什么时候不起作用。 最

android - 在 Android 中测试自定义 ContentProvider

我已经编写了我的内容提供程序,它应该包含对SqlLite数据库中2个表的访问。现在我想为它写一些测试用例,但我从来没有做过。阅读开发人员指南部分后,我必须说我没有设法进行任何测试。到目前为止,下面是我的代码。这是测试项目中唯一对应我的主项目的类。当我在Eclipse中执行它时,模拟器正确启动,安装了包,但它不运行测试:Testrunfailed:Testrunincomplete.Expected1tests,received0这是测试类:publicclassArticleProviderTestextendsProviderTestCase2{staticfinalUri[]val

java - 具有多个表的 ContentProvider

我想实现一个操作多个表的ContentProvider。到目前为止,这是我尝试过的。我编写了一个JavaInterface,表示每个表都应在其CRUD类中实现的CRUD操作。publicinterfaceCRUDHandler{//UPDATEintupdate(Uriuri,ContentValuesvalues,Stringselection,String[]selectionArgs);//READCursorquery(Uriuri,String[]projection,Stringselection,String[]selectionArgs,StringsortOrder)