隐式Intent

来源:互联网 发布:剑灵灵女捏脸数据图表 编辑:程序博客网 时间:2024/06/14 21:18

启动自己程序内的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

如调用浏览器:

@Overridepublic 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);            }
原创粉丝点击