Android “为什么;意向选择器“;存在,它的用途是什么?

Android “为什么;意向选择器“;存在,它的用途是什么?,android,android-intent,Android,Android Intent,Android的Intent类提供了一个名为setSelector的API。我试着从中给出的例子来理解它 我想问为什么Android需要添加这个API?在这个API出现之前,什么是破坏意图?根据我的理解,它让用户可以选择他想要选择的意图。在该文档中,他们给出了用户是想打开应用程序的主要活动还是想启动除用户应用程序以外的任何差异应用程序/活动的选择。这是我从该文档中了解到的。查看此链接以获取参考:&我从阅读参考资料中了解到,此API打算解决的问题是,您希望为满足某些一般限制的应用程序发送启动器意图

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


我想问为什么Android需要添加这个API?在这个API出现之前,什么是破坏意图?

根据我的理解,它让用户可以选择他想要选择的意图。在该文档中,他们给出了用户是想打开应用程序的主要活动还是想启动除用户应用程序以外的任何差异应用程序/活动的选择。这是我从该文档中了解到的。查看此链接以获取参考:&

我从阅读参考资料中了解到,此API打算解决的问题是,您希望为满足某些一般限制的应用程序发送启动器意图。假设您想匹配所有打开.mp3文件的应用程序,但您不想实际打开mp3文件,您只想启动一个支持该文件的应用程序。在这种情况下,您可以创建一个通用的ACTION_MAIN、CATEGORY_LAUNCHER intent,并将选择器设置为具有mp3 mime类型或数据URI的intent

在此API之前,没有办法做到这一点-如果你想针对一个支持打开mp3的应用程序,你必须发送一个mp3的意图,这可能会导致音乐开始播放,或者导致音乐播放器抛出错误。此外,根据音乐播放器的启动模式,启动器意图可能会返回到音乐播放器的现有实例,而mp3意图可能会创建一个新实例