1.Activity生命周期:
所有的Android组件都有它自己的生命周期,表示从这一组件的创建到销毁的整个过程。
在这一过程中,组件会在活动、非活动以及可见或不可见等状态中不断切换。
Activity一般处于4种状态:
Running、Paused、Stop、Killed
(运行、暂停、停止、销毁)
Intent intent=new Intent();
intent.putExtra("name","zhangsan");
通过使用Intent对象的getXXXExtra()方法可以获取附加信息。
例如,将上面代码存入Intent对象中的人名获取出来,因存入的是字符串,所以可以使用getStringExtra()方法获取数据,
String name=intent.getStringExtra("name");
2.Intent解析:
2.1 直接(显式)Intent
已经知道要启动的组件名称,通过直接指定组件来实现
常用方法有setComponent()、setClassName()或setClass()
Intent intent=new Intent();
intent.setClass(Activity1.this,Activity2.class);
2.2 间接(隐式)Intent
不知道要启动的组件名称,只知道一个Intent动作要执行,比如:拍照,录像。
通过Intent Filter过滤实现,根据Action、Data和Category属性进行匹配查找。
Intent过滤
//注册
//应用程序入口
//该活动优先级最高
在使用Intent进行Activity之间的跳转时,我们通常有三种Intent跳转方式,即:
1.不带参数的跳转
Intent intent=new Intent();
intent.setClass(Activity1.this,Activity2.class);
startActivity(intent);
2.带参数的跳转
Intent intent=new Intent();
Bundle bundle=new Bundle();
bundle.putString("Name","Kate");
bundle.putString("Age","25");
intent.putExtras(bundle);
intent.setClass(Activity1.this,Activity2.class);
startActivity(intent);
Activity1跳转到Activity2之后,Activity2通过Bundle获取Intent传过来的值
Bundle bundle=this.getIntent().getExtras();
String name=bundle.getString("Name");
String age=bundle.getString("Age");
3.带返回值的跳转
第一个页面传送返回值:
Intent intent=new Intent();
intent.setClass(Activity1.this,Activity2.class);
Bundle bundle=new Bundle();
bundle.putString("参数","参数值");
intent.putExtra(bundle);
this.startActivityForResult(intent,0);
startActivityForResult(Intent intent,Int requestCode)
中requestCode用于识别第二个页面传回来的值
第二个页面:
Intent intent=new Intent();
Bundle bundle=new Bundle();
bundle.putString("参数","参数值");
intent.putExtra(bundle);
intent.setClass(Activity2.this,Activity1.class);
setResult(RESULT_OK,intent);
finish();
第一个页面接收返回值:
protected void onActivityResult(int requestCode,int resultCode,Intent data){
switch (requestCode){//Activity1的请求标识
//resultCode为回传的标记,在Activity2中使用的是RESULT_OK,所以此处选择case 0
if(resultCode==RESULT_OK){
Bundle b=data.getExtras();
String str=b.getString("参数");
}
break;
default:
break;
}
}