Android 学习笔记之 Intent 隐式
隐式intent
xml
<!--在意图过滤器中-->
<intent-filter>
<action android:name="android.intent."/>
<category android:name="android.intent.category.DEFAULT"/>
<data android:mimeType="application/person"/>
<data android:scheme=""
android:host="">
</intent-filter>
<!--android:action
category
URI和数据类型 -->
一个android(理解为匹配机制)中可以定义0-1个action,0-n个category, 0-1个data
一个intent-filter中可以定义多个action,category,data
MainActivity 中
1.setAction
Intent intent = new Intent();
intent.setAction("abcdefg");
startActivity(intent);
2.构造方法直接设置
Intent intent = new Intent("abcdefg");
startActivity(intent);
有几点需要注意:
1、 这个Activity其他应用程序也可以调用,只要使用这个Action字符串。这样应用程序之间交互就很容易了,例如手机QQ可以调用QQ空间,可以调用腾讯微博等。
因为如此,为了防止应用程序之间互相影响,一般命名方式是包名+Action名,例如这里命名"abcdefg"就很不合理了,就应该改成"com.example.app016.MyTest"。
2、 当然,你可以在自己的程序中调用其他程序的Action。 例如可以在自己的应用程序中调用拨号面板:
Intent intent = new Intent(Intent.ACTION_DIAL);
// 或者Intent intent = new Intent("android.intent.action.DIAL");
// Intent.ACTION_DIAL是内置常量,值为"android.intent.action.DIAL"
startActivity(intent);