小编Sil*_*owe的帖子

在ContentProvider中关闭数据库

本周我一直在学习有关ContentProvider的所有内容,并使用SQLiteOpenHelper类来管理提供程序内部数据库的创建和升级.具体来说,我一直在阅读sdk的samples目录中的NotePad示例.

现在,我可以看到SQLiteOpenHelper有一个close()方法.我知道将空闲数据库打开是不好的做法,可能导致内存泄漏等等(除非这个讨论朝着正确的方向发展).如果我在Activity中使用该类,那么我只需在onDestroy()方法中调用close(),但据我所知,ContentProvider与活动没有相同的生命周期.NotePad的代码似乎永远不会调用close(),所以我想假设它是由SQLiteOpenHelper或其他一些拼图处理的,但我真的很想知道.我真的不太相信示例代码,要么...

问题摘要:我们何时应该关闭提供商中的数据库,如果有的话?

sqlite android android-contentprovider

73
推荐指数
4
解决办法
2万
查看次数

Android的SimpleCursorAdapter使用DISTINCT进行查询

这是一个有趣的问题,我很震惊,在互联网上没有经常被问到.一旦你启动并运行ContentProvider并学习如何使用它,Android的CursorAdapters非常有用,但由于他们要求将_id字段作为其查询的一部分,所以它们是有限的(没有它就会抛出错误).原因如下:

我的具体问题是我有两个微调器:一个微调器应该包含数据库中唯一的"类别"名称,另一个应该填充所选"类别"的所有数据库条目(类别是列名,在这里).这似乎是一个非常简单的设置,很多程序可能会使用,不是吗?试图实现第一个微调器是我遇到问题的地方.

这是我想要第一个微调器的查询:

SELECT DISTINCT category FROM table;
Run Code Online (Sandbox Code Playgroud)

使此查询在CursorAdapter上引发错误,因为_id列是查询的一部分.将_id列添加到投影自然会返回表的每一行,因为您现在也要求不同的id,并且每个id都是不同的(根据定义).显然,我宁愿每个类别名称只看到一个条目.

我已经实现了一个解决方法,就是简单地进行上面的查询,然后将结果复制到ArrayAdapter中.我这篇文章的原因是看看这个奇怪的小问题是否有一个更优雅的解决方案,并开始讨论我可以做得更好.非常欢迎使用其他实现建议,例如使用不同类型的控件或适配器.

sqlite android distinct simplecursoradapter

11
推荐指数
1
解决办法
4552
查看次数

从Sencha Touch 2或Sencha Touch 1.x开始是否更好?

我最近使用PhoneGap构建了一个演示应用程序,我选择尝试将JQuery Mobile作为UI框架.这是......好吧.我现在想试试Sencha Touch,看看我是否更喜欢它.

截至目前(2011年12月中旬),似乎Sencha Touch 2已作为预览发布,并且在性能方面有显着改进(这对我来说是一个关键因素).但是,它缺少一些功能,并且在Sencha网站上似乎没有很多演示/教程.

在SO经验丰富的Sencha Touch开发人员的宝贵意见中(至少在移动领域经验丰富,我的意思是你至少玩了一个星期左右),你会建议我从Sencha Touch 2开始开始,或者通过学习1.x的动作,稍后升级到2?使用这个和其他框架的"预览"版本有什么优点/缺点,特别是在不断变化的移动开发世界中工作时?

感谢您的任何意见!

mobile sencha-touch cordova

5
推荐指数
1
解决办法
1216
查看次数

如何在不运行的情况下在手机上安装我的apk?

以下是我的问题的一些简要背景; 也许真正的答案就是改变我的方法.

我有一个可以自行运行的应用程序,但可以使用应用程序外部的意图调用某些活动.最近,我一直在使用我构建的一个小测试应用程序来尝试这个,每当我更改主应用程序中的代码时,我必须运行它,关闭它,然后运行测试应用程序.

真的,没什么大不了的.不过,我很想知道是否有办法安装新代码,而无需在手机上启动应用程序.

eclipse android

0
推荐指数
1
解决办法
265
查看次数