我正在尝试创建一个使用内部存储的内容提供商。但是,我在网上看到的所有例子都只使用sqlite。
有人可以为我提供一个使用内部存储创建内容提供商的好教程或示例吗?
答案 0 :(得分:4)
您可以使用内容提供商的文件方法将数据存储在文件中 openTypedAssetFile()。这将返回AssetFileDescriptor(即,跨进程有效的文件句柄)而不是Cursor。
总的来说,这个问题很难回答。内容提供者是数据存储库和客户端之间的“接口”。文档没有说明SQLite以外的存储库,因为a)内容提供者模型是按照关系数据库的方式组织的,b)内容提供者的每个实现都会有所不同。
在了解您的具体要求之前,我不愿意提供更多建议。可能你可以从SQLite中受益,尽管你可能不会立即明白为什么。您也可能是对的:SQLite不是解决方案,但是如果有更多信息,我可以提出一些想法。
答案 1 :(得分:1)
Android SDK示例中有一个名为FileProvider.java的示例,该示例使用ContentProvider但不使用SQLite数据库。
答案 2 :(得分:0)
我知道你要做的事情可能是创建图像,电影或内部存储等。
您可以使用InternalStorage存储数据字节。如果您有字节,您可以这样做:
String FILENAME = "hello_file";
String string = "hello world!";
FileOutputStream fos = openFileOutput(FILENAME, Context.MODE_PRIVATE);
fos.write(string.getBytes());
fos.close();
把它拿出来:
File file = ...
OutputStream out = null;
try {
out = new BufferedOutputStream(new FileOutputStream(file));
...
finally {
if (out != null) {
out.close();
}
}