草庐IT

contentprovider

全部标签

android - 在 ContentProvider 中访问上下文

我有一个ContentProvider类和一个DatabaseHelper类(扩展SQLiteOpenHelper)。ContentProvider实例化需要访问Context的Helper,因为构造函数需要它:publicDBHelper(Contextcontext,AssetFileDescriptordb_asset){super(context,DB_NAME,null,1);您至少知道一种从ContentProvider获取上下文的方法吗?谢谢:) 最佳答案 在您的ContentProvider.onCreate方法中,

android - 在 ContentProvider 中访问上下文

我有一个ContentProvider类和一个DatabaseHelper类(扩展SQLiteOpenHelper)。ContentProvider实例化需要访问Context的Helper,因为构造函数需要它:publicDBHelper(Contextcontext,AssetFileDescriptordb_asset){super(context,DB_NAME,null,1);您至少知道一种从ContentProvider获取上下文的方法吗?谢谢:) 最佳答案 在您的ContentProvider.onCreate方法中,

android - 是否可以比较两个游标?

我需要检查两个游标是否指向具有相同值的相同行。可能吗?更多详情:我正在从我自己的ContentProvider加载数据我正在向服务器发送请求,然后使用新值更新ContentProvider中的数据。如果值发生变化-我需要通知用户他可以更新数据。 最佳答案 根据CommonsWare的已删除答案:IterateovertherelevantcolumnsintheCursor,retrievethevalues,andcompareeach.虽然您可能事先不知道每一列的类型,但您可以使用Cursor.getType()找出。您还可以使

android - 是否可以比较两个游标?

我需要检查两个游标是否指向具有相同值的相同行。可能吗?更多详情:我正在从我自己的ContentProvider加载数据我正在向服务器发送请求,然后使用新值更新ContentProvider中的数据。如果值发生变化-我需要通知用户他可以更新数据。 最佳答案 根据CommonsWare的已删除答案:IterateovertherelevantcolumnsintheCursor,retrievethevalues,andcompareeach.虽然您可能事先不知道每一列的类型,但您可以使用Cursor.getType()找出。您还可以使

android - 使用 ContentProvider 时为 "error code 5: database is locked"

我有一个应用程序在启动并绑定(bind)到Activity的单独进程中运行带有服务的Activity。该服务包含一个处理程序,该处理程序发布一个可运行的对象以在延迟后运行。我希望每个组件都记录到数据库中,因此我实现了一个处理数据库访问的内容提供程序,并通过扩展的AsyncTask子类从服务或Activity中调用它。这一切在模拟器上运行得很好,但是当我在我的手机上调试运行它时,我在我的数据库写入时遇到一个零星的数据库锁定错误:更新我对我的数据库处理做了一些更改,错误发生了轻微的变化。ERROR/Database(15235):ErrorinsertingMY_MESSAGEERROR/

android - 使用 ContentProvider 时为 "error code 5: database is locked"

我有一个应用程序在启动并绑定(bind)到Activity的单独进程中运行带有服务的Activity。该服务包含一个处理程序,该处理程序发布一个可运行的对象以在延迟后运行。我希望每个组件都记录到数据库中,因此我实现了一个处理数据库访问的内容提供程序,并通过扩展的AsyncTask子类从服务或Activity中调用它。这一切在模拟器上运行得很好,但是当我在我的手机上调试运行它时,我在我的数据库写入时遇到一个零星的数据库锁定错误:更新我对我的数据库处理做了一些更改,错误发生了轻微的变化。ERROR/Database(15235):ErrorinsertingMY_MESSAGEERROR/

Android ContentProvider URI 方案通知 CursorAdapters 监听 OUTER JOIN 查询

我有一个AndroidContentProvider,它允许在SQLite数据库上执行LEFTOUTERJOIN查询。假设我在数据库中有3个表,Users、Articles和Comments。ContentProvider类似于以下内容:publicclassSampleContentProviderextendsContentProvider{privatestaticfinalUriMatchersUriMatcher;publicstaticfinalStringAUTHORITY="com.sample.contentprovider";privatestaticfinalin

Android ContentProvider URI 方案通知 CursorAdapters 监听 OUTER JOIN 查询

我有一个AndroidContentProvider,它允许在SQLite数据库上执行LEFTOUTERJOIN查询。假设我在数据库中有3个表,Users、Articles和Comments。ContentProvider类似于以下内容:publicclassSampleContentProviderextendsContentProvider{privatestaticfinalUriMatchersUriMatcher;publicstaticfinalStringAUTHORITY="com.sample.contentprovider";privatestaticfinalin

java - Android 中的数据库访问

我正在创建一个Android应用程序,它基本上是关于蘑菇的信息列表。我从sqlite数据库中获取此信息。我有一个全局单例,里面有一个服务类,我用它来访问我的数据库。几乎每个Activity都访问数据库。让我的数据库一直打开还是在我需要数据时打开和关闭它更好?如果最好的做法是让它一直打开,我需要在哪里确保关闭它,如果我在Activity被销毁时让它打开,最坏的情况是什么? 最佳答案 此时您最好的选择是重构,以便您的应用程序通过ContentProvider访问数据库。您的ContentProvider实现是唯一具有打开数据库句柄的东西

java - Android 中的数据库访问

我正在创建一个Android应用程序,它基本上是关于蘑菇的信息列表。我从sqlite数据库中获取此信息。我有一个全局单例,里面有一个服务类,我用它来访问我的数据库。几乎每个Activity都访问数据库。让我的数据库一直打开还是在我需要数据时打开和关闭它更好?如果最好的做法是让它一直打开,我需要在哪里确保关闭它,如果我在Activity被销毁时让它打开,最坏的情况是什么? 最佳答案 此时您最好的选择是重构,以便您的应用程序通过ContentProvider访问数据库。您的ContentProvider实现是唯一具有打开数据库句柄的东西