隐式Intent

启动自己程序内的Activity

不明确指出启动哪一个活动,指定一系列action和category,信息交给系统处理,找到适合启动的活动。

<intent-filter>
   <action android:name="com.example.activitytest.ACTION_START" />
   <category android:name="android.intent.category.DEFAULT" />
</intent-filter>

只有当action和category中的内容同时匹配Intent中指定的action和category时,Intent才能被启动。
AndroidManifest.xml

 button1.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
     Intent intent=newIntent("com.example.activitytest.ACTION_START");
     startActivity(intent);
    }
});

因为android.intent.category.DEFAULT是默认的category,在调用startActivity()方法时会自动把这个category添加到这个Intent 中。

每个Intent 可以指定多个action,却可以指定多个category.
如果不匹配,程序就会崩溃

Intent intent=new Intent("com.example.activitytest.ACTION_START");
                intent.addCategory("android.intent.category.MY_CATEGORY\"");
                startActivity(intent);

自定义一个category,MY_CATEGORY,AndroidManiFest.xml中没有声明。声明后就可以,<category android:name="android.intent.category.MY_CATEGORY" />

调用其它程序 的Activity

如调用浏览器:

@Override
public void onClick(View view) {
      Intent intent=new Intent(Intent.ACTION_VIEW);
      intent.setData(Uri.parse("http://www.baidu.com"));
      startActivity(intent);
}

这里写图片描述
拨打电话:

 @Override
            public void onClick(View view) {
                Intent intent=new Intent(Intent.ACTION_DIAL);
                intent.setData(Uri.parse("tel:10086"));
                startActivity(intent);
            }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值