为什么隐式intent无法启动activity
2014-05-29 09:23
295 查看
由于是自学的安卓,一直看的是《安卓疯狂讲义》。虽然书里面写只要在activity的intent-filter里面配置相关属性即可被隐式intent启动,但是实际测试中却好像碰到了问题。
当程序创建Intent时,该Intent默认启动Category属性值为Intent.CATEGORY_DEFAULT常量(常量值为android.category_DEFAULT)的组件。
*既然是默认启动,如果我们在创建Intent时指定了category属性的值,而且目标组件的IntentFilter中也有该category的值,这样的隐式intent可以启动目标组件吗?
(经测试,不能启动!02-26 09:41:59.007: E/AndroidRuntime(404): Caused by: android.content.ActivityNotFoundException: No Activity found to handle Intent { act=com.aishang5wpj.intent.action.TEST_DIALOG cat=[com.aishang5wpj.intent.category.TEST_DIALOG] }
)
因此,虽然上面的粗体字代码并未指定目标的Intent的Category属性,但该Intent已有一个android.intent.category_DEFAULT属性值,因此被启动Activity的配置元素的<intent-filter.../>元素里至少还包括一个如下的<category../>子元素。
<category android:name="android.intent.category.DEFAULT" />
总结起来就是说,配置Activity时它的intent过滤器中必须有Category属性值为Intent.CATEGORY_DEFAULT常量,否则无法通过隐式intent启动。
当程序创建Intent时,该Intent默认启动Category属性值为Intent.CATEGORY_DEFAULT常量(常量值为android.category_DEFAULT)的组件。
*既然是默认启动,如果我们在创建Intent时指定了category属性的值,而且目标组件的IntentFilter中也有该category的值,这样的隐式intent可以启动目标组件吗?
(经测试,不能启动!02-26 09:41:59.007: E/AndroidRuntime(404): Caused by: android.content.ActivityNotFoundException: No Activity found to handle Intent { act=com.aishang5wpj.intent.action.TEST_DIALOG cat=[com.aishang5wpj.intent.category.TEST_DIALOG] }
)
因此,虽然上面的粗体字代码并未指定目标的Intent的Category属性,但该Intent已有一个android.intent.category_DEFAULT属性值,因此被启动Activity的配置元素的<intent-filter.../>元素里至少还包括一个如下的<category../>子元素。
<category android:name="android.intent.category.DEFAULT" />
总结起来就是说,配置Activity时它的intent过滤器中必须有Category属性值为Intent.CATEGORY_DEFAULT常量,否则无法通过隐式intent启动。
相关文章推荐
- Activity隐式启动时候IntentFilter的匹配规则
- 隐式Intent启动Activity不成功问题
- Activity启动方式的总结(4)-Activity隐式启动时候IntentFilter的匹配规则
- Android 使用Intent隐式传递启动Activity(访问网址,打电话等)
- Android Activity 启动模式(续) 和显/隐式的intent
- Activity数据传输--Intent显示、隐式、不同应用之间启动
- [转]Android 进程间通信 Intent机制 隐式启动Activity
- 隐式启动Activity,Intent filter必须添加android.intent.category.DEFAULT
- 隐式Intent启动Activity,action不能使用@string配置
- Intent携带数据过大导致无法启动目标Activity
- 跨App启动Activity,隐式Intent启动,ActivityNotFoundException解决
- 安卓隐式Intent启动Activity和BroadcastReceiver若干注意点
- 隐式启动为什么要加android.intent.category.DEFAULT?
- Activity详解数据传递以及隐式Intent启动
- 【安卓开发-3】Activity的四种启动模式、Intent的显式和隐式使用方式
- 隐式Intent启动Activity,action不能使用@string配置
- Android Activity Intent隐式启动
- 使用隐式的Intent启动activity
- activity之隐式启动intent
- Android 进程间通信 Intent机制 隐式启动Activity