一:启动
1:直接启动 (startActivity)
◆首先声明Intent对象指定启动源及启动目标,然后让Intent对象作为startActivity方法的参数完成启动。
◆实现:
Intent i = new Intent(MainActivity.this,Act2.class);//启动源,启动目标 startActivity(i); //直接启动的方法 |
2:携值启动 (startActivity)
◆首先声明Intent对象指定启动源及启动目标,调用Intent对象的putExtra方法,以键值对的形式携带数据,然后让Intent对象作为startActivity方法的参数完成启动
◆实现:
(1)主Activity
|
(2)目标Activity
String val = getIntent().getStringExtra("键的名称");//取得传过来的值 |
3:带返回值的启动 (startActivityForResult)
在某些场景下,我们需要从A界面跳转携带数据到B界面,在B界面做一些处理后,在带着返回值回到A界面已完成相应操作,这是我们需要带返回值的启动。
◆具体过程如下:
(1)主Activity,创建Intent对象,指明启动源及启动目标
(2)主Activity,调用Intent对象的putExtra方法,以键值对的形式携带数据
(3)主Activity,调用startActivityForResult方法,参数有两个,第一个为Intent对象,第二个为requestCode,为int类型,为了判断是哪个界面触发的动作
(4)目标Activity,创建空的Intent对象,调用putExtra方法,以键值对的形式储存数据
(5)目标Activity,准备数据,此时只是准备数据,还没有传送,只有finish界面之后才触发启动。setResult方法,两个参数,第一个resultCode,标志是那个界面返回的结果,第二个参数Intent对象
(6)目标Activity,终止目标Activity,finish方法执行之后,出发了返回值启动
(7)主Activity,重写onActivityResult方法,通过对参数值的比较,来执行不同的操作
◆具体实现
(1)主Activity通过按钮实现返回值启动
|
(2)目标Activity
|
◆结果:在控制台输出返回来的值
|
二:关闭
1:关闭自身(finish)
finish方法用来当Activity完成所有任务且需要关闭的情况时调用。这个方法一旦被执行,Activity将执行生命周期中的onDestory方法,因此我们可以把资源回收的操作放在onDestory里,调用finish方法,间接的调用onDestory方法,已达到关闭Activity的目的。
2:关闭其他Activity(finishActivity)
finishActivity用来根据参数requestCode的值来决定关闭哪个Activity。能被该方法关闭的Activity可以有多个,但是这些Activity必须由带返回值的启动方式。
转载于:https://blog.51cto.com/cinderella7/1280199