移动开发作业二:Activity的生命周期与跳转

一、使用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实现界面的跳转和文本显示.总的来说,感觉独立思考并解决问题的能力很重要,代码要多敲,熟能生巧,并且写的时候不要不加思考,最好是在明白实现逻辑的前提下加以动手实践.

gitee仓库源码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值