我想在我的应用上添加一些功能。我想要的是在那里放一个搜索按钮,我知道为了做到这一点,我必须把我的文本放在数据库上使用sql进行查询。但是在android上使用sqlite有一个缺点吗?例如,如果我必须存储大文件?或者,如果一个用户删除我创建的应用程序,数据库将保留在他们的手机中?而且我在android上的sqlite上可以使用的最大大小是多少?有没有其他替代方法可以使用而不是使用数据库?感谢..
答案 0 :(得分:2)
我不确定数据库,但通常外部存储数据永远不会被删除,除非用户自己删除它。虽然在早期版本的android中,数据曾经在app uninstall上被删除。
我不确定缺点,但除了SQLite之外,Android中还有3个数据存储选项。一个是共享首选项,但仅适用于原始数据类型,并在应用程序卸载时删除。其次是内部存储器上的文件存储,在app uninstall上也会被删除。第三是外部存储器上的文件存储,在应用程序卸载时不会被删除,但如果存储器安装在计算机上,则可以打开以供任何其他应用程序或计算机访问。
SQLite数据对应用程序来说是安全且私密的,我相信这是一种很好的存储方法。它的大小限制是SQLite的标准限制,请检查SQLite limits here。
答案 1 :(得分:1)
似乎SQLite对你来说是个很好的解决方案。如果您计划在DB中搜索文本,则可以使用FTS功能。我认为它支持大文件exceeds现代硬件上限:)的能力。 Sqlite数据库是简单文件,因此您可以控制是否将其保存在用户设备上(将db文件放在sdcard上(非常不推荐))或不保存(将db文件放入app本地存储中)。
如果你对你的应用程序稍微描述一下,我可以提出一些替代方案。
答案 2 :(得分:1)
我认为在您的应用程序中使用sqlite没有任何缺点。但是有人认为你不要忘记你必须只在后台线程中执行所有数据库操作。如果你在主线程中运行,UI将在处理时冻结大数据。
如果使用方法getExternalStorageDirectory()
创建文件,也可以从SDCard中删除您的应用程序数据。请参阅以下链接,使用该文件创建文件
Android how to use Environment.getExternalStorageDirectory()
答案 3 :(得分:0)
实际上,我相信这是Sqlite有用的东西之一。 Sqlite是数据库的1文件解决方案,允许您轻松克隆和部署。至于卸载和大小限制的删除,我无法想象为什么它会被区别对待任何其他文件(因为它只是一个文件)