实验2 Activity 和Intent
1.实验目的
1.掌握如何创建一个Activity
2.掌握如何在Activity中添加控件并进行事件处理
3.掌握如何通过Intent启动另外一个Activity
4.掌握如何通过Intent在多个Activity之间传递数据
5.掌握Activity的生命周期
2.实验仪器
装有Android开发环境的计算机
3.实验任务
任务4:Activity的生命周期测
(1)实验效果
①点击运行模拟器
②点击StartDialogActivity按钮
③点击屏幕返回
④点击StartNormalActivity按钮
⑤点击 返回上页 按钮
(2) 训练目标
1) 观察Activity生命周期经历的主要方法
2) 如果使用LogCat观察输出,掌握如何设置LogFilter
Log Tag是在MainActivity里面添加Log的时候的名字。
// Log.d("MainActivity","onCreate");
3) 观察何时调用onPause方法?
4) 观察何时调用onStop方法?
关于Activity的生命周期的说明:
-
启动Activity:系统会先调用onCreate方法,然后调用onStart方法,最后调用onResume,Activity进入运行状态。
-
当前Activity被其他Activity覆盖其上或被锁屏:系统会调用onPause方法,暂停当前Activity的执行。
-
当前Activity由被覆盖状态回到前台或解锁屏:系统会调用onResume方法,再次进入运行状态。
-
当前Activity转到新的Activity界面或按Home键回到主屏,自身退居后台:系统会先调用onPause方法,然后调用onStop方法,进入停滞状态。
-
用户后退回到此Activity:系统会先调用onRestart方法,然后调用onStart方法,最后调用onResume方法,再次进入运行状态。
-
当前Activity处于被覆盖状态或者后台不可见状态,即第2步和第4步,系统内存不足,杀死当前Activity,而后用户退回当前Activity:再次调用onCreate方法、onStart方法、onResume方法,进入运行状态。
-
用户退出当前Activity:系统先调用onPause方法,然后调用onStop方法,最后调用onDestory方法,结束当前Activity
(3)核心代码
MainActivity里重写OnCreate等7个方法,在运行时,按步骤观察LogCat里的效果
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.d("MainActivity","onCreate");
}
public void StartNormal(View view){
Intent intent = new Intent(MainActivity.this,NormalActivity.class);
startActivity(intent);
}
public void StartDialog(View view){
Intent intent = new Intent(MainActivity.this,DialogActivity.class);
startActivity(intent);
}
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
Log.d("MainActivity","onDestory");
}
@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
Log.d("MainActivity","onPause");
}
@Override
protected void onRestart() {
// TODO Auto-generated method stub
super.onRestart();
// Log.d("MainActivity","onRestart");
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
Log.d("MainActivity","onResume");
}
@Override
protected void onStart() {
// TODO Auto-generated method stub
super.onStart();
Log.d("MainActivity","onStart");
}
@Override
protected void onStop() {
// TODO Auto-generated method stub
super.onStop();
Log.d("MainActivity","onStop");
}
@Override
protected void onSaveInstanceState(Bundle outState) {
// TODO Auto-generated method stub
super.onSaveInstanceState(outState);
String tempData = "Something you just typed";
outState.putString("data_key",tempData);
}
}