安卓活动跳转之Intent使用

如何让自己的的程序能够在活动之间来回切换,变的高大上呢?使用Intent可以实现这一点。

 

Intent(中文意思:意图)大致可以分为显示Intent和隐式Intent

显示Intent很直白,一般只需两个语句即可实现活动的跳转:

Intent intent = new Intent(MainLayoutActivity.this , DialogActivity.class);
//创建一个Intent对象,第一个参数表示上下文,第二个参数表示要启动的目标活动,也就是说在
//MainLayoutActivity这个活动的基础上启动DialogActivity这个活动
startActivity(intent);//然后调用Activity类提供的startAcitivity()方法,用于启动一个活动

隐式Intent相对较复杂,但他比较灵活,他并不明确指出我们要启动哪一个活动,而是指定一系列更为抽象的action和category等信息,然后交由系统去分析这个Intent,并帮我们找出合适的活动去启动。合适的活动是指满足Intent中指定的action和category信息的活动。那么如何让活动成为一个合适的活动,并让其他活动能够通过隐式Intent启动该活动呢?我们需要进行如下设置:

打开AndroidManifest.xml文件,并找到改活动相应的代码部分(假定该活动名称叫NormalActivity),进行如下配置

<activity android:name=".NormalActivity">
      <intent-filter>//中文名可翻译为:意图过滤
            //将动作名称命名为:com.example.activitytest.ACTION.START
           <action android:name="com.example.activitytest.ACTION.START" />
            //将分类名称命名为:默认分类
           <category android:name="android.intent.category.DEFAULT" />
      </intent-filter>
</activity>

然后其他活动的.java文件中添加如下代码,即可实现活动的跳转:

//直接引用NormalActivity活动的action的字符串传入Intent
Intent intent = new Intent("com.example.activitytest.ACTION.START");
startActivity(intent);

第一行代码表示我们想要启动能够响应com.example.activitytest.ACTION.START这个action的活动,这里并没有添加category的信息,但是还是可以启动NormalActivity这个活动,这是为什么呢?这是因为"android.intent.category.DEFAULT"是一种默认的category,在调用startActivity()这个方法的时候会自动将这个category添加到这个Intent中。你也可以指定一个活动的category,然后使用addCategory()这个方法给Intent添加category,从而实现灵活的活动跳转。

-----------END--------------

 

全部评论

相关推荐

点赞 评论 收藏
分享
一名愚蠢的人类:多少games小鬼留下了羡慕的泪水
投递荣耀等公司10个岗位
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务