- CATEGORY_ALTERNATIVE
- 设置这个activity是否可以被认为是用户正在浏览的数据的一个可选择的action;
- 有时你可能希望通过一个菜单项使用Intent启动一个activiry(不论这个activit在你自己的程序中还是在另一个程序中 ).如果你知道了需要的Intent,你可以在响应对应菜单项的回调方法中执行Intent的startActivity()方法完成.
然而,如果你不能确信用户设备上具有响应这个intent的程序,那么添加的菜单项可能成多余的.为了解决这个问题,Android
允许你在发现具有所有响应目标intent的activity时动态添加菜单项.要跟据是否具有响应目标intent的Activity来添加菜单项,你需要:
定义一个具有类别 CATEGORY_ALTERNATIVE 和/或CATEGORY_SELECTED_ALTERNATIVE的intent,当然还可以跟据需要添加其它类别.
调用 Menu.addIntentOptions(). Android会查找可以执行这个的程序然后把它添加到你的菜单上.如此一来,如果没有满之intent的程序存在,则没有菜单项会添加.注:CATEGORY_SELECTED_ALTERNATIVE被用于处理屏幕上当前被选择的元素.所以,它只能用于在onCreateContextMenu()中被建的菜单.
- CATEGORY_APP_BROWSER
- 和ACTION_MAIN一起使用,用来启动浏览器应用程序
- CATEGORY_APP_CALCULATOR
- 和ACTION_MAIN一起使用,用来启动计算器应用程序
- CATEGORY_APP_CALENDAR
- 和ACTION_MAIN一起使用,用来启动日历应用程序
- CATEGORY_APP_CONTACTS
- 和ACTION_MAIN一起使用,用来启动联系人应用程序
- CATEGORY_APP_EMAIL
- 和ACTION_MAIN一起使用,用来启动邮件应用程序
- CATEGORY_APP_GALLERY
- 和ACTION_MAIN一起使用,用来启动图库应用程序
- CATEGORY_APP_MAPS
- 和ACTION_MAIN一起使用,用来启动地图应用程序
- CATEGORY_APP_MARKET
- 这个activity允许用户浏览和下载新的应用程序
- CATEGORY_APP_MESSAGING
- 和ACTION_MAIN一起使用,用来启动短信应用程序
- CATEGORY_APP_MUSIC
- 和ACTION_MAIN一起使用,用来启动音乐应用程序
- CATEGORY_BROWSABLE
- 能够被浏览器安全调用的activity必须支持这个category
- CATEGORY_DEFAULT
- 设置这个activity对于默认的action是否是一个可选的
- CATEGORY_EMBED
- 可以运行在父activity容器内
- CATEGORY_HOME
- 主activity,当应用程序启动时,它是第一个显示的activity
- CATEGORY_LAUNCHER
- 应该在上层的启动列表里显示
- CATEGORY_MONKEY
- 这个activity可能被monkey或者其他的自动测试工具执行
- CATEGORY_OPENABLE
- 用来指示一个GET_CONTENT意图只希望ContentResolver.openInputStream能够打开URI
- CATEGORY_PREFERENCE
- 这个activity是一个选项卡
- CATEGORY_SAMPLE_CODE
- 作为一个简单的代码示例使用(一般情况下不使用)
- CATEGORY_SELECTED_ALTERNATIVE
- 设置这个activity是否可以被认为是用户当前选择的数据的一个可选择的action
- CATEGORY_TAB
- 想要在已有的TabActivity内部作为一个Tab使用
- CATEGORY_TEST
- 供测试使用(一般情况不使用)
- CATEGORY_UNIT_TEST
- 联合测试使用