Android Activity之间的跳转

智者不为愚者谋,勇者不为怯者死。这篇文章主要讲述Android Activity之间的跳转相关的知识,希望能为你提供帮助。

  • Activity之间的跳转需要用到Intent(意图)组件,通过Intent可以开启新的Activity实现界面跳转功能。
  • Intent被称为意图,是程序中各组件进行交互的一种重要方式,它不仅可以指定当前组件要执行的动作,还可以在不同组件之间进行数据传递。根据开启目标组件的方式不同,Intent被分为显式意图和隐式意图两种类型。
显式意图:
【Android Activity之间的跳转】显式意图可以直接通过名称开启指定的目标组件,通过其构造方法Intent(Context packageContext , Class< ?> cls)来实现,第一个参数为Context表示当前的Activity对象,第二个参数Class表示要启动的目标Activity,通过这个方法创建一个Intent对象,然后将该对象传递给Activity的startActivity(Intent intent)方法即可启动目标组件。示例代码如下:
//从当前页面跳转到Activity02界面 Intent intent = new Intent(this,Activity02.class); //创建Intent对象 startActivity(intent); //开启Activity02

隐式意图:
隐式意图相比显示意图来说更为抽象,它并没有明确指定要开启哪个目标组件,而是通过指定action和category等属性信息,系统根据这些信息进行分析,然后寻找目标Activity。其示例如下:
Intent intent = new Intent(); //设置action动作,该动作要和清单文件中设置的一样 intent.setAction("cn.START_ACTIVITY"); startAvtivity(intent);

上述代码中,只指定了cation,并没有指定category,这是因为在目标Activity的清单文件中配置的category只是一个默认值,在调用startActivity()方法时,自动将这个category添加到Intent中。接下来还需要在目标Activity的清单文件中配置     ,指定当前Activity能够响应的action和category,示例代码如下:
< activity android:name="cn.Activity02"> < intent-filter> < action android:name="cn.START_ACTIVITY" /> < category android:name="android.intent.category.DEFAULT" /> < /intent-filter> < /activity>

在清单文件中,目标组件Activity02指定了可以响应的< action> 和< category> 信息,只有当action和category属性与目标组件设置的内容相同时,目标组件才会被开启。需要注意,每个Intent只能指定一个cation,却能够指定多个category。


    推荐阅读