activity通过增加intent-fliter来标识哪些intent可以被处理,同时intent也是调度activity的主要参数。
如果使用隐式的Intent就要用到这些东西
action_view:将数据显示给用户,action_view 通常和特定的data相配合使用,用于给用户显示数据。
说白了 category就是表明当前activity可以用什么方式来启动,
CATEGORY_BROWSABLE:可以用浏览器启动
laucher_category :可以在开启程序时启动
CATEGORY_DEFAULT:可以用startActivity方法启动
category:他为执行动作的附加信息。例如:laucher_category 表示intent的接受者应用在launcher中作为程序入口应用。 属于CATEGORY_DEFAULT这个类别的,可以用 startActivity(intent)来启动Activity
CATEGORY_BROWSABLE:此类型表明ActivityAuthSuccess(豆瓣网例子)可以通过浏览器启动,需要注意的是,我们在这里定义了数据的匹配模式为scheme="haiyang",也就是说当链接为"haiyang://"模式的时候可以触发ActivityAuthSuccess这个activity来处理
//====================CATEGORY===================================
CATEGORY_BROWSABLE 目标activity可以使用浏览器来显示-例如图片或电子邮件消息.
CATEGORY_GADGET 该activity可以被包含在另外一个装载小工具的activity中.
CATEGORY_HOME 该activity显示主屏幕,也就是用户按下Home键看到的界面.
CATEGORY_LAUNCHER 该activity可以作为一个任务的第一个activity,并且列在应用程序启动器中.
CATEGORY_PREFERENCE 该activity是一个选项面板.
//====================ACTION======================================
ACTION_CALL activity 发起一个电话呼叫.
ACTION_EDIT activity 显示数据给用户来编辑.
ACTION_MAIN activity 将该activity作为一个task的第一个activity启动,不传入参数也不期望返回值.
ACTION_SYNC activity 将设备上的数据和一个服务器同步.
ACTION_BATTERY_LOW broadcast receiver 发出电量不足的警告.
ACTION_HEADSET_PLUG broadcast receiver 一个耳机正被插入或者拔出.
ACTION_SCREEN_ON broadcast receiver 屏幕被点亮.
ACTION_TIMEZONE_CHANGED broadcast receiver 时区设置改变.
//===================例子=======================================
1.
<activity android:name="AuthSuccessActivity">
<intent-filter>
<action android:name="android.intent.action.VIEW"></action>
<category android:name="android.intent.category.DEFAULT"></category>
<category android:name="android.intent.category.BROWSABLE"></category>
<data android:scheme="lovemeiting"></data>
</intent-filter>
</activity>
解释:允许AuthSuccessActivity可以用startActivity方法启动(category.DEFAULT)
CATEGORY_BROWSABLE:允许浏览器启动来调用启动他
启动模式是:http://lovemeiting
2.
<service android:name="MapServer">
<intent-filter>
<action android:name="com.zhe.activity.Start_service"></action>
<category android:name="android.intent.category.DEFAULT"></category>
</intent-filter>
</service>
为这个service指定一个action名字,这样可以通过
Intent i = new Intent("com.zhe.activity.Start_service");
startService(i);来调用他
分享到:
相关推荐
6. **Intent Filters**:在AndroidManifest.xml中,通过intent-filter标签定义组件能响应哪些Intent,包括Action、Category和Data,使得其他应用可以通过隐式Intent调用组件。 7. **startActivity()** 和 **...
当发送一个隐式Intent时,Android系统会根据Intent的元数据(Action、Data、Category)找到最适合的组件来处理,这就是Intent解析过程。 10. ** FLAGs 和 Extra Options**: Intent还支持各种FLAG,如`FLAG_...
- **Action**:定义 `Intent` 的操作类型,如 `ACTION_VIEW`、`ACTION_SEND` 等。 - **Category**:表示 `Intent` 的类别,常见的有 `CATEGORY_DEFAULT`(默认行为)、`CATEGORY_BROWSABLE`(可从浏览器启动)等。...
Intent Filter包含Action、Data和Category,当Intent中的这些信息与Filter匹配时,组件才能响应Intent。 8. **BroadcastReceiver** BroadcastReceiver是接收Intent广播的组件,可以监听系统或自定义的广播事件。在...
- **Action**:Intent的动作标识,如`ACTION_VIEW`, `ACTION_CALL`等,用于描述Intent要执行的操作。 - **Data**:Intent的数据URI,用于携带数据,可以是文件路径、网络URL等。 - **Type**:数据的MIME类型,...
例如,一个Activity可以通过在AndroidManifest.xml中定义Intent过滤器,声明它能响应特定的Action、Data URI或Category,这样当有匹配的隐式Intent被发送时,这个Activity就会被激活。 压缩包内的文件名称列表: 1...
显式Intent明确指定要启动的目标组件,而隐式Intent则不指定具体目标,而是通过Action、Data、Category等元数据匹配符合条件的接收者。 1. 显式Intent:在创建显式Intent时,我们需要指定目标组件的全限定类名,这...
- 在AndroidManifest.xml中,为Activity或Service定义Intent-Filter,设置Action、Data和Category。 - 系统根据Intent的属性匹配过滤器,找到最合适的组件执行。 9. **BroadcastReceiver与Intent** - ...
例如,如果一个Activity希望接收所有ACTION_VIEW类型的Intent,可以在AndroidManifest.xml中这样声明: ```xml <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:...
Intent由两部分组成:Action、Data、Category、Component和其他额外的数据。Action是Intent的核心部分,它定义了Intent想要执行的操作。例如,ACTION_VIEW表示查看某个数据,ACTION_CALL表示拨打电话等。 二、系统...
当系统接收到一个隐式Intent时,它会根据Intent中的Action、Data/Type、Category等信息来查找匹配的Intent Filter,并选择合适的组件来处理该Intent。 总之,Intent及其组成部分构成了Android应用程序间通信的基础...
<action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> </intent-filter> `...
Android系统会根据Intent的Action、Data、Category等属性来寻找最适合处理Intent的Activity。例如,拨打电话可以这样启动: ```java Intent call = new Intent(Intent.ACTION_CALL); call.setData(Uri.parse("tel:...
- 创建Intent时,可以指定动作(ACTION)、数据URI(DATA)、数据类型(MIME Type)以及类别(CATEGORY)等参数。 - `Intent intent = new Intent(context, TargetClass.class);` 用于创建一个显式Intent,`...
- Action:描述Intent要执行的操作,如ACTION_VIEW、ACTION_SEND等。 - Data:包含URI数据,可以是文件路径、网络URL或其他数据源。 - Type:数据的MIME类型,用于描述Data部分的内容类型。 - Category:分类,...
Intent Filter在组件的XML配置文件中定义,通过设置Action、Data、Category等属性,让其他组件能通过Intent找到并启动它。 7. **启动Activity** 使用`startActivity(Intent)`或`startActivityForResult(Intent, ...
- 设置Action:`intent.setAction(Intent.ACTION_VIEW);` - 设置Data(URI):`intent.setData(Uri.parse("http://example.com"));` - 添加Category:`intent.addCategory(Intent.CATEGORY_BROWSABLE);` - 查找...
Intent intent = new Intent(Intent.ACTION_VIEW, uri); startActivity(intent); ``` 2. **拨打电话**:使用`ACTION_DIAL`拨打电话,需获取电话号码的`Uri`: ```java Uri uri = Uri.parse("tel:12580"); Intent ...