Android的Intent类提供了一个名为setSelector
的API。我试图从documentation中给出的例子中理解它。
我想问为什么Android需要添加此API?在此API之前,Intent的内容是什么?
答案 0 :(得分:0)
通过阅读参考资料,我的理解是该API旨在解决的问题是您要为符合某些常规限制的应用发送启动器意图。假设您想匹配所有打开.mp3文件的应用程序,但是您实际上不想打开mp3文件,则只想启动一个支持该文件的应用程序。在这种情况下,您可以创建通用的ACTION_MAIN,CATEGORY_LAUNCHER意图,然后将选择器设置为具有mp3 MIME类型或数据URI的意图。
在使用此API之前,您将无法执行此操作-如果您要定位支持打开mp3的应用,则必须发送mp3意图,这可能导致音乐开始播放或导致音乐播放器抛出错误。另外,根据音乐播放器的启动模式,启动器意图可能会返回到音乐播放器的现有实例,而mp3意图可能会创建一个新实例。
答案 1 :(得分:-1)
根据我的理解,它为用户选择了他想要选择的意图。在该文档中,他们给出了它可以选择用户是想要打开应用程序的主要活动还是想要启动除用户应用程序之外的任何差异应用程序/活动。这就是我从该文档中理解的内容。请查看此链接以供参考:https://code.google.com/p/android/issues/detail?id=67162& http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/4.4_r1/android/content/Intent.java#Intent.setSelector%28android.content.Intent%29