Intent跳转和7个生命周期
作者:互联网
初次接触Android开发
1.掌握Activity的创建和使用Intent跳转Activity。
2.掌握活动的生命周期,以及7个生命周期方法的作用。
Intent跳转
Android软件进行跳转最简单的运用,按钮的跳转活动的运用。
本次我们初步学习Intent跳转,通过按钮利用Intent跳转,从一个页面跳转到另一个页面。
在编写Intent跳转前,我们需要在界面布局(.xml)添加一个button。
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="跳转">
完成这一步后,我们还需要一个页面SecondActivity,作为跳转的页面。
完成以上步骤后,我们可以在第一个页面开始进行我们Intent跳转的学习了。
我们需要在第一个界面先完成对按钮的定义。
button = (Button)findViewById(R.id.button);
然后我们利用==OnClickListener()==方法,定义出Intent跳转对象;
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(FirstActivity.this,SecondActivity.class);
//定义intent,从第一个界面跳转到第二个界面
startActivity(intent); //启动这个intent
}
});
}
目前位置,我们已经完成了第一个学习任务,掌握Activity的创建和使用Intent跳转Activity。
生命周期
首先我们先了解一下什么叫生命周期。
生命周期方法为这7个:
onCreate():当Activity创建时调用,初始化设置
onStart():当Activity即将可见时调用
onResume():当Activity获得焦点时调用。
onPause();当前Activity被其他Activity覆盖或屏幕锁屏时调用
onStop():Activity对用户不可见时调用
onDestroy:Activity被销毁时调用
onReStart():Activity从停止状态到再次启动时调用
生命周期的关系,如图:
任何软件活动都离不开这个7个生命周期。
观察生命周期
我们通过日记打印的方式观察软件的生命周期。通过观察生命周期,我们可以了解软件的运行过程。
我们在第一个进行编码:
protected void onCreate(Bundle savedInstanceState) {
Log.d("Lifecycle", "FirstActivity:onCreate被调用");} //log为日记打印方法,log.d为打印成黑色字体
@Override
protected void onStart() {
super.onStart();
Log.d("Lifecycle", "FirstActivity:onStart被调用");}
@Override
protected void onResume() {
super.onResume();
Log.d("Lifecycle", "FirstActivity:onResume被调用");}
@Override
protected void onPause() {
super.onPause();
Log.d("Lifecycle", "FirstActivity:onPause被调用");}
@Override
protected void onStop() {
super.onStop();
Log.d("Lifecycle", "FirstActivity:onStop被调用");}
@Override
protected void onDestroy() {
super.onDestroy();
Log.d("Lifecycle", "FirstActivity:onDestroy被调用");}
@Override
protected void onRestart() {
super.onRestart();
Log.d("Lifecycle", "FirstActivity:onRestrat被调用");}
第二个页面进行编码:
protected void onCreate(Bundle savedInstanceState) {
Log.e("Lifecycle", "SecondActivity:onCreate被调用");} //log为日记打印方法,log.d为打印成红色字体
@Override
protected void onStart() {
super.onStart();
Log.e("Lifecycle", "SecondActivity:onStart被调用");}
@Override
protected void onResume() {
super.onResume();
Log.e("Lifecycle", "SecondActivity:onResume被调用");}
@Override
protected void onPause() {
super.onPause();
Log.e("Lifecycle", "SecondActivityy:onPause被调用");}
@Override
protected void onStop() {
super.onStop();
Log.e("Lifecycle", "SecondActivity:onStop被调用");}
@Override
protected void onDestroy() {
super.onDestroy();
Log.e("Lifecycle", "SecondActivity:onDestroy被调用");}
@Override
protected void onRestart() {
super.onRestart();
Log.e("Lifecycle", "SecondActivity:onRestrat被调用");}
顺便介绍一下log日记打印:
我们将第一个页面的生命周期打印字体颜色为黑色,第二个页面的生命周期打印字体的颜色为红色。
我们运行App,我们进入第一个界面时:
第一个界面FirstActivity被调用,FirstActivity的==Create()、onStart()和onResume()==用。
onCreate():当Activity创建时调用,初始化设置;
onStart():当Activity即将可见时调用;
onResume():当Activity获得焦点时调用。
点击跳转,从第一个页面跳转到第二个页面,
点击跳转按钮,页面从FirstActivity跳转到SecondActivity,第二个页面SecondActivity被调用。
第一个界面被第二个界面覆盖,故FirstActivity的onPause()被调用。
第二个界面生成,故SecondActivity的onCreate()、onStart()、onResume()被调用。
完全覆盖后,第一个界面不可见故FirstActivity的onStop()被调用。
onPause();当前Activity被其他Activity覆盖或屏幕锁屏时调用;
onStop():Activity对用户不可见时调用
随后我们返回第一个界面。
点击虚拟机返回按钮,退回第一个页面FirstActivity。
第二个界面被第一个界面覆盖,调用SecondActivity的onPause()
第一个界面重新生成,故FirstActivity的onCreate()、onReStart()和onResume()被调用。
第二个界面SecondActivity不可见后被销毁,故SecondActivity的onStop()、onDestroy被调用。
onDestroy:Activity被销毁时调用;
onReStart():Activity从停止状态到再次启动时调用。
最后我们关闭App
退出app,第一个界面FirstActivity退出,不可见并销毁。
调用FirstActivity的onPause()、onStop()、onDestroy().
贴上完整日记:
2020-03-23 23:19:03.046 7889-7889/com.example.myapplication D/Lifecycle: FirstActivity:onCreate被调用
2020-03-23 23:19:03.054 7889-7889/com.example.myapplication D/Lifecycle: FirstActivity:onStart被调用
2020-03-23 23:19:03.055 7889-7889/com.example.myapplication D/Lifecycle: FirstActivity:onResume被调用
//启动App,第一个页面启动
2020-03-23 23:29:28.766 7889-7889/com.example.myapplication D/Lifecycle: FirstActivity:onPause被调用
2020-03-23 23:29:28.820 7889-7889/com.example.myapplication E/Lifecycle: SecondActivity:onCreate被调用
2020-03-23 23:29:28.824 7889-7889/com.example.myapplication E/Lifecycle: SecondActivity:onStart被调用
2020-03-23 23:29:28.827 7889-7889/com.example.myapplication E/Lifecycle: SecondActivity:onResume被调用
2020-03-23 23:29:29.374 7889-7889/com.example.myapplication D/Lifecycle: FirstActivity:onStop被调用
//跳转到第二个页面
2020-03-23 23:35:48.879 7889-7889/com.example.myapplication E/Lifecycle: SecondActivityy:onPause被调用
2020-03-23 23:35:48.894 7889-7889/com.example.myapplication D/Lifecycle: FirstActivity:onRestrat被调用
2020-03-23 23:35:48.895 7889-7889/com.example.myapplication D/Lifecycle: FirstActivity:onStart被调用
2020-03-23 23:35:48.895 7889-7889/com.example.myapplication D/Lifecycle: FirstActivity:onResume被调用
2020-03-23 23:35:49.414 7889-7889/com.example.myapplication E/Lifecycle: SecondActivity:onStop被调用
2020-03-23 23:35:49.415 7889-7889/com.example.myapplication E/Lifecycle: SecondActivity:onDestroy被调用
//结束第二个页面,返回第一个页面
2020-03-23 23:53:28.858 7889-7889/com.example.myapplication D/Lifecycle: FirstActivity:onPause被调用
2020-03-23 23:53:29.522 7889-7889/com.example.myapplication D/Lifecycle: FirstActivity:onStop被调用
2020-03-23 23:53:29.523 7889-7889/com.example.myapplication D/Lifecycle: FirstActivity:onDestroy被调用
//关闭app
通过本次实验,学习Intent跳转的使用,学习日记打印方法认识软件的生命周期。
Android 开发学习未完待续
标签:生命周期,23,7889,调用,Intent,跳转,FirstActivity,Lifecycle 来源: https://blog.csdn.net/genijmni/article/details/105823819