**4.1 Activity的生命周期**
4.1.1生命周期状态
生命周期是Activity从创造到销毁的整个过程。
4.1.2 生命周期方法
1.onCreate():创建调用,就是将数据绑定到列表,调用setContentView()来定义Activity界面布局。
2.onStart():Activity即将可见调用。
3.onResume():Activity获取焦点调用
4.onPause():当前Activity被其他覆盖或者锁屏时调用
5.onStop():停止Activity
6.onDestrory():Activity销毁调用
7.onRestart():Activity从停止状态到再次启动调用
**4.2 Activity的创建 、配置、开启和关闭**
4.2.1 创建新的Activity
-
在new—》Activity----->Empty Activity
创建新的Activity
2.配置Activity 在New----》java class -----创建类
3.开启和关闭Activity
(1)用startActivity()方法开启创建的Activity
eg:
Intent intent=new Intent(MainActivity.this ,SecondActivity.class);
startActivity(intent);
(2)关闭Activity
调用finish();//关闭当前Activity
4.3 Intent与IntentFilter
4.3.1 Intent
(1)被称为意图,是程序中组件进行交互的一种重要形式,可以指定当前组件要执行的形式,可以进行数据传送,分为显示Intent和隐式Intent。
(1.1)显示Intent
直接指定跳转目标,代码如下:
Intent intent=new Intent(MainActivity.this ,SecondActivity.class); //创建Intent,传入两个参数,第一个代表当前Activity,第二个代表要跳转的目标Activity
startActivity(intent);
(1.2)隐式Intent
不会指明需要激活目标组件,通过指定action和category属性,系统根据这些信息进行分析,找到Activity目标。
操作:
4.3.2 InterFilter
1.action属性匹配规则
2.data属性匹配规则
3.category属性匹配规则
4.4 Activity之间的跳转
4.4.1 使用Intent的putExtra()方法传递数据
代码:(在MainActivity中的代码)
Intent Intent=new Intent();
Intent.setClass(MainActivity.this,SecondActivity.class);//数据名称,数据信息
intent.putExtra(“studentActivity”,“小明”);
intent.putExtra(“englishScore”,“90”);
intent.putExtra(“isPAss”,“ture”);
startActivity(intent);在SecondActivity可以通过getxxxExtra()方法获取传递的数据,代码: Intent intent=new Intent(); String name=intent.getInExtra("studentName"); int englishScore=intent.getIntExtra("englishScore",0);
boolean isPassed=intent.getBooleanExtra(“isPAssed”,true);
使用Bundle类传数据
4.2.2 Activity之间的数据回传
(1).startActivityForResult()方法
开启一个Activity,当开启的Activity销毁时,希望从中返回数据,该方法有2个参数,第一个参数是表示意图,第二个参数是请求码。
(2).setResult()方法
用于携带数据回传。该方法有两个参数,第一个参数是resultCode表示返回码,用于标识返回数据哪一个Activity。第二个参数携带数据并传入到上一个界面。
(3).onActivityResult()方法
接收回传的数据,并根据传递的参数requestCode、resultCode来识别数据的来源。(显示数据到界面)
4.5 Activity的任务栈和启动模式**
四种模式:standard模式、SingleTop模式、SingleTAsk模式、singleInstance模式