隐式意图和显式意图
显式:【启动自己程序内部的界面】
startActivity(new Intent(this , xxx.class));
隐式: 【一般是用来启动其他应用程序的界面】
startActivity(intent); intent.setAction("包名.ACTIONNAME"); //如果分类中有默认的,那么此处可以不用写category intent.setData(Uri.parse("")); startActivity(intent);
数据传递
简单数据:
Intent intent = new Intent(this , xxx.class);
intent.putExtra(“name” , “zhangsan”);
startActivity(intent);-------------------------------------------- Intent intent = getIntent(); intent.getStringExtra("name");
对象数据:
1 . Serializable
2 . Parcelable
启动界面等待结果:
1. startActivityForResult(requestCode , intent);
2. 下一个界面设置返回的数据
setResult(resultCod , data);
3. 关闭下一个界面
finish();
4. 重写onActivityResult()接收数据
requestCode:
请求码, 用来区分当前的界面有多个请求出去,当
数据返回的时候可以用请求码去判别到底是谁返回了数据
resultCod:
结果码, 下一个界面可能返回不同类型的数据,
那么可以根据结果码去判定。
生命周期
onCreate【创建】—onStart【可见】–onResume【获取焦点】 - onPause【失去焦点】 — onStop 【不可见】–onDestroy【销毁】启动模式
standard
singleTop
只要当前启动的界面有实例位于栈顶,那么将不会再次创建实例。
singleTask
如果启动的界面在栈中存在实例,那么将直接复用该实例,并且:
把该实例与栈顶之间的其他实例全部移除掉。
singleInstance
界面的实例将存放在一个独立的栈中,并且这个栈有且只能有它自己一个人。
以后要想显示该界面,那么仅仅是需要切换显示不同的任务栈即可。
思维导图地址:
http://naotu.baidu.com/file/08dea9e3d2e558030c38c155a9fcec1c?token=ea791326e9b8fd9d