我有一个带有ListView的fragment。在onPause()中,我将ListView的Y滚动位置保存在ContentProvider中。onResume或onActivityCreated上的同一fragment使用加载器从内容提供者获取y滚动位置并恢复滚动位置。如果我退出Activity/fragment并返回到它,这将起作用,ListView将返回到其上次打开的位置,因为它在onPause中被保存到内容提供者。所以代码100%没问题。不好的是数据在轮换。onPause可以很好地保存,但是onCreateActivity之后的加载会导致检索旧数据,即保存在onPause之前的
尝试使用如下所示的自定义ContentProvider查询我的数据库时出现以下错误。我已确认该表存在且名称正确,但它仍然无法正常工作。我能够让它与原始查询一起工作,但我希望我们使用ContentProvider模式进行练习。谢谢,如果您需要更多信息,请告诉我。SQLiteOpenHelperpublicclassDatabaseHelperextendsSQLiteOpenHelper{privatestaticfinalStringTAG=DatabaseHelper.class.getSimpleName();privatestaticfinalStringDB_PATH="/da
关闭。这个问题需要更多focused.它目前不接受答案。想改进这个问题?更新问题,使其仅关注一个问题editingthispost.3年前关闭。Improvethisquestion我试图弄清楚对于访问多个Web服务并具有多个显示信息的Activity的应用程序的最佳通用设计是什么。我实现最新的Android应用程序的方式如下。我有一个IntentService接收来自Activity的请求以从Web服务获取信息。我的Service通过ResultReceiver通知Activity关于请求的状态(开始/错误/完成)。调用Web服务,获取结果(xml/json)并解析后,我将这些信息放
当我想检查并查看我的ContentProvider中是否存在某些内容时,我通常会做类似的事情Cursorc=getContentResolver().query(table,projection,selection,selectionArgs,sort);if(c!=null&&c.moveToFirst()){//itemexistssoupdate}else{//itemdoesnotexistsoinsert}但这意味着我总是不得不进行可能不必要的数据库调用,这会减慢速度,尤其是我需要对数据库进行更多的检查。必须有更好的方法来处理这个问题,所以我不必总是先查询。我看了这个问题An
我和我的Android团队遇到了问题。我们有一个应用程序可以显示用户的通讯录,其中包含扩展信息。当前设置我们的应用读取Android操作系统的联系人提供程序。将此信息发送到我们的服务器,服务器为我们计算几个必要的字段。此信息稍后由我们的应用程序获取,我们将此信息保存在SQLite数据库中。我们最终在数据库中得到的是两个表。一个包含所有数字和服务器为我们计算的所有额外信息。另一个表是一个包含所有联系人的表(一个联系人可以有多个号码)。这个Contacts表只是为了性能而创建的;在为用户显示通讯录时,我们可以使用Cursor选择CursorAdapter中此Contacts表中的所有行。因
我是Android开发新手。我正在尝试创建一个从内部数据库(SQLite)读取并在列表中列出所有数据的应用程序(我正在使用listView)。到目前为止,我得到了一个名为DatabaseHandler的类,它扩展了SQLiteOpenHelper并且它正在执行所有数据库操作(选择数据、插入数据、删除数据......).但现在我想列出这些值,我在一些网站上读到我必须使用Loader而不是Cursor,因此内容提供者。到目前为止,我了解到ContentProvider提供对数据库的受控访问。我的问题是:ContentProvider是否与SQLiteOpenHelper一样?此外,我使用的
我正在创建ContentProvider,它是另一个ContentProvider的代理(用于安全问题并提供对完整应用程序部分功能的访问权限)。publicclassGFContactsProviderextendsContactsProviderimplementsDatabaseConstants{privateContextmContext;privateContentResolvermContentResolver;@OverridepublicbooleanonCreate(){mContext=getContext();mContentResolver=mContext.g
如果我从Activity调用ContentProvider,ContentProvider运行在哪个线程中?例如如果Activity被杀死并且ContentProvider中正在执行查询,会发生什么?假设您的网络查询速度较慢。 最佳答案 如果您指的是使用ContentResolver调用ContentProvider的正常用例,那么据我所知,这就是发生的情况:在这个例子中,我假设您的ContentProvider存在于一个进程中,而您的Activity存在于另一个进程中。如果尚未创建ContentProvider,则使用应用程序进程
我在AndroidManifest.xml中注册了一个ContentProvider,并且在Application.onCreate()之前调用了ContentProvider.onCreate()。在我看来,我不理解这种行为,在应用程序中的任何组件之前调用Application.onCreate()更为自然。有人能告诉我Application.onCreate()和其他组件的onCreate()被调用的时间吗? 最佳答案 根据Google'sissue这就是它应该如何工作(尽管文档是错误的)。有anotherquestion有一个
ContentProviders和ContentResolver有什么区别?我不想要SQLite数据库。我正在开发媒体应用程序。 最佳答案 我找到了一些解释here.总结ContentResolver将URI解析为特定的ContentProvider。ContentProvider提供了查询内容的接口(interface)。查询内容提供者的方式是contentResolverInstance.query(URI,.....) 关于android-android中的contentprovi