为什么存在“意图选择器”,它有什么用途?

9

Android的Intent类提供了一个名为setSelector的API。我试图从文档中给出的示例来理解它。

我想问一下,为什么Android需要添加这个API?在引入此API之前,Intent存在哪些问题?

2个回答

1
阅读参考资料后,我的理解是该API旨在解决的问题是当你想要发送一个启动器意图来匹配一些通用限制的应用程序时。比如说,你想匹配所有能够打开.mp3文件的应用程序,但你并不想实际打开.mp3文件,而是只想启动支持该文件类型的应用程序。在这种情况下,你可以创建一个泛型的ACTION_MAIN、CATEGORY_LAUNCHER意图,并将选择器设置为一个具有mp3 MIME类型或数据URI的意图。
在此API之前,没有办法做到这一点——如果你想要针对支持打开mp3文件的应用程序进行定位,你必须发送一个mp3意图,这可能会导致音乐开始播放,或者导致音乐播放器抛出错误。此外,根据音乐播放器的启动模式,启动器意图可能会返回到现有的音乐播放器实例,而mp3意图可能会创建一个新的实例。

-1

根据我的理解,它给用户选择意图的选择。在文档中,他们提供了选择意图的选项,无论用户是想打开应用程序的主要活动还是想启动除用户应用程序之外的任何其他应用程序/活动。这就是我从那份文件中理解到的。请参考以下链接:https://code.google.com/p/android/issues/detail?id=67162http://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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接