我有一个很难理解的区别ACTION_OPEN_DOCUMENT
和ACTION_GET_CONTENT
意图时,他们被用来打开可打开的文档.如果我在KitKat之前支持Andriod,那ACTION_OPEN_DOCUMENT
我不支持,我应该和我一起解决ACTION_GET_CONTENT
吗?
该文件说,这:
ACTION_OPEN_DOCUMENT
不打算替代ACTION_GET_CONTENT
.您应该使用的那个取决于您的应用程序的需求:
- 使用
ACTION_GET_CONTENT
如果你希望你的应用程序只需读取/导入数据.使用此方法,应用程序将导入数据的副本,例如图像文件.- 使用
ACTION_OPEN_DOCUMENT
,如果你希望你的应用,以获得长期,持续的访问由文件提供者所拥有的文件.一个例子是照片编辑应用程序,它允许用户编辑存储在文档提供程序中的图像.
ACTION_GET_CONTENT
KitKat中是否也使用文档提供程序?什么会阻止我"长期,持久访问",这究竟是什么意思?
基本上,以下两个片段之间的区别是什么?
ACTION_GET_CONTENT
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.setType("*/*");
Run Code Online (Sandbox Code Playgroud)
ACTION_OPEN_DOCUMENT
Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
intent.setType("*/*");
Run Code Online (Sandbox Code Playgroud)
Com*_*are 32
ACTION_GET_CONTENT也不使用KitKat中的文档提供程序吗?
不必要.这取决于发布内容的应用程序的实现.另请注意,这DocumentProvider
是一种特定类型ContentProvider
.
什么会阻止我"长期,持久访问"
该Uri
说你从后面ACTION_GET_CONTENT
可能有它的临时权限授予为您的应用程序,以便能够读取和/或写的内容.该授权最终将失效(例如,当您的流程终止时).因此,例如,将Uri
字符串保存在数据库中可能毫无意义.
存储访问框架的一部分包括内容提供者可以提供可以持续较长时间("长期,持久")的权限授予的概念.虽然没有什么可以阻止应用程序ACTION_GET_CONTENT
在API级别19+上提供这样的持久权限,但它们会更常见ACTION_OPEN_DOCUMENT
.
基本上,以下两个片段之间的区别是什么?
用户体验会有所不同,因为ACTION_OPEN_DOCUMENT
它提供了标准化的文件浏览器样式界面,而ACTION_GET_CONTENT
传统的选择器对话框则是一些特定于应用程序的UI.
从您作为此内容的消费者的角度来看,ACTION_GET_CONTENT
如果您想立即使用该内容; ACTION_OPEN_DOCUMENT
如果你想现在和以后使用这些内容.
归档时间: |
|
查看次数: |
7211 次 |
最近记录: |