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);  

参考

posted @ 2018-10-13 16:09  PCM  阅读(131)  评论(0编辑  收藏  举报