一、使用log展示生命周期的状态变化,实现对Activity生命周期的理解
1.首先新建一个Project:My Application1021,然后new一个java类:SecondActivity
2.分别修改MainActivity和SecondActivity的继承关系
3.在SecondActivity中使用Ctrl+o添加重载函数,并在每一个函数中使用Log.i()输出状态信息
@Override
protected void onStart() {
super.onStart();
Log.i(TAG,"onStart()");
}
@Override
protected void onStop() {
super.onStop();
Log.i(TAG,"onStop()");
}
@Override
protected void onDestroy() {
super.onDestroy();
Log.i(TAG,"onDestroy()");
}
@Override
protected void onPause() {
super.onPause();
Log.i(TAG,"onPause()");
}
@Override
protected void onResume() {
super.onResume();
Log.i(TAG,"onResume()");
}
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.i(TAG,"onCreate()");
}
@Override
protected void onRestart() {
super.onRestart();
Log.i(TAG,"onRestart()");
}
4.运行虚拟器,并在Logcat中观察MainActivity的生命周期状态变化
①启动且未做任何操作时:
onCreate():创建生命周期;onStart():启动并显示界面;onResume():显示界面且可以和用户交互
②点击back返回一步到桌面
onPause(): 暂停;onStop():停止,并且不再显示界面
③点击Overview,然后双击回到原界面
onRestart():生命周期重启;onStart():启动并显示界面;onResume():显示界面且可以和用户交互
④点击home回到桌面;
跟点击back的效果一样
⑤点击Overview此时生命周期无变化,然后将原界面上滑删除,如图所示
执行onPause(),onStop()以及onDestory();
生命周期被销毁,虚拟器结束运行.
注意:
1.点击power关机后生命周期执行onPause()和onStop(),并不会被销毁.
2.Activity生命周期中只能被onCreate()和onDestroy()一次,
二、新建一个新的Activity,recycleview的某一项点击后跳转到这个新的Activity
1.新建一个ItemActivity,并在对应的.xml文件中对该界面进行布局
2.在Adpter的onBindViewHolder函数中新增对textView的监听函数.在存在context属性的前提下,intent与startActivity连用实现界面的跳转.recycleview点击任意一项会跳转至ItemActivity对应的界面.
点击前:
点击后:
三、新建一个新的activity2,在activity1上添加按钮可收到activity2的回传值
1.新建resultActivity,利用intent接收ItemActivity的回传值并显示在ItemtextView2中
2.在ItemActivity中,新增对button的点击监听,并且利用intent实现界面跳转,跳转到resultActivity接收结果.
点击button结果如图:
实验小结:
实验过程中我对于Activity生命周期的状态有了更加深入的理解,知道了各种界面切换过程下对应的Activity生命状态的改变情况.除此之外,通过后面两个例子的实现,我对.xml界面的布局操作更熟悉了,知道了每种控件对应的属性含义之后,布局过程越来越顺利.另外,通过对知识的综合运用,我对于intent在界面跳转中的应用过程更加了解,学会了安卓代码编程的一些基本逻辑.比如点击按钮可以为button创建监听函数,然后使用intent结合startActivity实现界面的跳转和文本显示.总的来说,感觉独立思考并解决问题的能力很重要,代码要多敲,熟能生巧,并且写的时候不要不加思考,最好是在明白实现逻辑的前提下加以动手实践.