生命周期
从Activity01到Activity02的运行顺序为: Activity01 onPause -> Activity02 onCreate -> Activity02 onStart ->Activity02 onResume ->Activity01 onStop ->Activity01 onDestroy
返回Activity01的运行顺序为: Activity02 onPause -> Activity01 onCreate -> Activity01 onStart -> Activity01 onResume -> Activity02 onStop -> Activity02 onDestroy
onCreate函数:注册你要用到的变量,比如说service,receiver,这些变量是无论你的Activity是在前台还是在后台都能够被响应到的,然后调用上面那个用来初始化的函数初始化布局信息.
onStart函数:注册一些变量.这些变量必须在Activity在前台的时候才能够被响应.
onResume函数:调用一些刷新UI的函数,每当Activity调用到这里时就要刷新一下UI各控件的状态.
onPause函数:一般是做一些变量的设置,因为这个时候Activity马上就要切到后台处理,可能有些变量就要被释放掉或者状态要做些相应的调整.
onStop函数:反注册在onStart函数中注册的变量.
onDestory函数:反注册在onCreate函数中注册的变量.
调用另一个Activity
//从Activity01中转换到Activity02
//new 一个Intent对象,并制定要启动的class
Intent intent = new Intent();
//Activity01.this现在的Activity,Activity02.class要启动的Activity
intent.setClass(Activity01.this,Activity02.class);
//调用一个新的Activity
startActivity(intent);
//关闭原来的Activity
this.finish();
当系统中新添加Activity时,必须在AndroidManifest.xml里定义一个新的Activity
<!-- Activity02为类名 -->
<activity android:name="Activity02"></activity>
不同Activity之间传递数据
Activity01发送数据到Activity02
//new一个Intent对象,并指定class
Intent intent = new Intent();
intent.setClass(Activity01.this,Activity02.class);
//new一个Bundle对象,并将要传递的数据传入
Bundle bundle = new Bundle();
bundle.putDouble("height",199);
bundle.putString("sex",man);
//将Bundle对象赋值给Intent
intent.putExtras(bundle);
//调用Activity02界面(无返回)
//startActivity(intent);
//调用Activity02,Activity01界面等待返回,0为requestCode,如果大于等于零,则返回结果时会回调 onActivityResult() 方法
startActivityForResult(intent,0);
Activity01对返回的处理
//覆盖onActivityResult()
//requestCode为startActivityForResult中定义的值
protected void onActivityResult(int requestCode,int resultCode,Intent data){
switch(resultCode){
case RESULT_OK:
//取得Activity02的数据,并显示
Bundle bundle = data,getExtras();
String sex = bundle.getString("sex");
double height = bundle.getDouble("height");
break;
default:
break;
}
}
Activity02接收数据
//在onCreate中
//取得Intent中的Bundle对象
Bundle bundle = this.getIntent().getExtras();
//取得Bundle中的数据
String sex = bundle.getString("sex");
double height = bundle.getDouble("height");
Activity02返回上一页按钮
public void onClick(View v){
//intent为this.getIntent();
//RESULT_OK为resultCode,可以自定义一个整数,在onActivityResult中判断
this.setResult(RESULT_OK,intent);
this.finish();
}