至高准则1:Intent在四大组件中起"桥梁"作用
至高准则2:安卓四大组件运行在主线程中,所以不能在其中做耗时操作。一、显示活动与隐式活动
1.显示活动:用于当前应用打开内部的活动。
2.隐式活动:用于调用其他应用的活动(通常是系统上层应用,不安全)
二、活动的显示调用和隐式调用
启动活动必定是startActivity(Intent intent); 区别在于Intent意图是显示的还是隐式的。
显示调用:法①:Intent intent = new Intent(Context context,Class<?> cls);
法②:Intent intent = new Intent();
intent.setClass(Context context,Class<?> cls);
隐式调用:法①:Intent intent = new Intent(String action); //其中的action参数是由其他活动的意图过滤器intent-filter定义的。
法②:Intent intent = new Intent();
intent.setAction(String action);
三、主活动与其他活动之间传递数据(Intent)
1.主活动 → 其他活动:
主活动:intent可以传递数据。
(1)传递基本数据类型:intent.putExtra(键--值对); 数据随startActivity(Intent intent)传递出去。
(2)传递序列化对象:
①.实现对象的序列化:实现Parcelable接口,并实现它的方法。
②.用对象的setter方法设置对象的属性
③.intent.putExtra(String name,Parcelable value);
其他活动:从intent中取出数据
Intent intent = getIntent();可以拿到主活动的意图
intent.getXXXEntra(键); 可以拿到基本数据类型或者是序列化对象
2.主活动(①开启) → 其他活动(②数据) → 主活动(③)
①.主活动开启其他活动:startActivityForResult(intent,requestCode);
②.其他活动传递数据给主活动:
intent封装好数据 → setResult(resultCode,intent) → finish()关闭当前活动
③.主活动接收数据:
onActivityResult(requestCode,resultCode,intent)方法,intent参数封装了数据,取出即可。
四、活动数据临时保存:因系统回收导致的活动被销毁,保存临时数据。
保存:重写onSaveInstanceState()方法
取出:onCreate方法的Bundle参数