Intent应用

Intent可以分为两类:

  • 显示Intent通过组件名称来指定目标组件。通常用于应用程序内部消息。
  • 隐式Intent不指定组件名称。通常用于激活其他应用程序的组件。
通过一个例子来说明,在com.example.usingintents包下创建一个新Activity,命名为Aty1.
可以通过setComponent()来显示的调用,通过组件的名称来调用:
Intent i = new Intent();
i.setComponent(new ComponentName("com.example.usingintents", "com.example.usingintents.Aty1"));
startActivity(i);
可以通过startActivity(Action)来调用,先在AndroidManifest中配置
<span style="white-space:pre">	</span><activity android:name="Aty1">
            <intent-filter>
                <action android:name="com.example.usingintents.intent.action.Aty1"/>
                <category android:name="android.intent.category.DEFAULT"/>
            </intent-filter>
        </activity>
然后调用
Intent intent = new Intent("com.example.usingintents.intent.action.Aty1");
startActivity(intent);


Intent过滤器

Activity、Service和BroadcastReceiver能定义多个Intent过滤器来通知系统它们可以处理哪些Intent。显示Intent无论是何种内容总可以发送给它的目标,过滤器并不干预。但是,隐式Intent只有在通过组件的Intent过滤器之后才能发送给组件。

Intent过滤器是IntentFilter类的实例。通常不在Java代码中进行设置,而是使用<intent-filter>标签写在应用程序的配置文件(AndroidManifest.xml)中。

  • 动作<action>标签
  • 种类<category>标签
  • 数据<data>标签
例子:

在MainActivity中,传递包含动作的隐式Intent

				Intent intent = new Intent();
				intent.setAction(Intent.ACTION_VIEW);//为Intent设置动作
				startActivity(intent);
编写AndroidManifest.xml文件,为两个Activity设置不同的Intent过滤器。

        <activity
            android:name=".MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity 
            android:name=".SecondActivity">
            <intent-filter >
                <action android:name="android.intent.action.VIEW"/>
                <category android:name="android.intent.category.DEFAULT"/>
            </intent-filter>
        </activity>




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值