Android开发系列(十) Intent的使用

  本节不打算继续讲Android界面开发,而是讲一下Intent, 之后可能会把QQ登陆界面、聊天界面做出来,不过聊天界面可能会等我复习完Sqlite数据库之后再考虑,不过还是先记录一下本节的内容,以备以后参考。

 

  Intent 用于启动一个Activity 或 Service或者BroadCast。

1、      可以使用setClass或者在构造函数中设置原Activity或者目标Activity,这样就可以显示的指定跳转的对象。

 

 

2、      也可以通过setAction方法为Intent对象设置Action属性(一个字符串),然后启动intent, intent会根据在AndroidManifest.xml中的Activity的注册信息的intent-filter自动筛选符合条件的对象。

      这里要注意:

新创建的一个Activity必须在AndroidManifest.xml中注册,注册时如果没有<intent-filter>  </intent-filter> 那么只需配置一下名字即可,但如果有intent-filter,就必须包含

<action />和 <category  />属性,其中普通Activity的category属性一般可以是  <category android:name="android.intent.category.DEFAULT"/>

      /*****example*****/

AndroidManifest.xml 

<intent-filter>

      <action android:name="Action information"  />

      <category android:name="android.intent.category.DEFAULT" />

</intent-filter>

 

MainActivity.java

Intent intent=new Intent();

intent.setAction("Action Inforation");

startActivity(intent);                                          //注意这里的Action Information的形式是任意的,但是必须不能与其他的Activity发生冲突

       /****************/

 

3、可以通过addCategory设置category对启动的Activity做进一步的限定。

AndroidManifest.xml 

<intent-filter>

 

      <action android:name="Action information"  />

  

  <category android:name="TSIDJ" />

      <category android:name="android.intent.category.DEFAULT" />

 

</intent-filter>

 

MainActivity.java

Intent intent=new Intent();

intent.setAction("Action Inforation");

intent.addCategory("TSIDJ");

startActivity(intent);                                      

//注意由addCategory()这一属性就能看出,这是添加了一个附加的属性,要注意两点:1、categeory属性DEFAULT不能省略; 2、category不能单独实现Activity的跳转,而Action独自就可以实现Activity跳转,category只是作为一个附加条件,即如果action/data信息相同而category信息不同也无法启动Activity

 

今天就写这么多吧早点休息了。。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

    

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。