day02
作业2
为 Activity 设置2种不同的启动模式并通过 adb 命令进行查看任务栈信息,并且打印生命周期方法执行日志
step1:生成第二个Activity和相应配置、
一个是singleTask模式,还一个是mainActivity的默认格式
step2:打印生命周期
在摁下按钮,启动第2个前,mainactivity处于正在运行状态。按下按钮后,画面切换,但是main没有退出,所以处于pause,让出了资源和内存。同时,第二个activity创建 启动
Step3:adb查看任务栈
adb命令:
adb shell dumpsys activity activities
作业5
掌握Fragment生命周期的执行过程
在MainActivity、Demorragment和DemoFragment2生命周期各方法中添加日志
step2:分析启动并添加Demofragment时的生命周期日志
在activityB界面调用fragment2
由于activity的优先级高于fragment,所以先是activity启动,再是fragment启动。
step3:分析按下Home键后的生命周期日志
home键后,所有组件都进入后台,但是未销毁,所以处于stop状态。
且是fragement2先pause和stop,再轮到activityB。
step4:分析使用add与replace显示Demofragment2时生命周期日志差异
add是把另一个fragment一起添加进来,而replace会把之前的fragment都销毁,再添加进另一个fragment。所以在新的fragment进来前,
add:前一个fragment处于stop状态
replace:前一个fragment会被销毁。
step5:分析按下返回键后的生命周期日志
在退出时,由于replace会把之前的fragment和activity都销毁,所以除非使用了回退栈,否则会直接退出
课后作业:
搭建App首页,一个Activity有多个Fragment,点击底部Tab切换Fragment,rragment只显示一个文本即可,点击按钮跳转到另一个Fragment
使用viewPager实现Fragment左右滑动
bug1:
用andoridx报错
andoridx头文件是studio在创建fragment的时候,自动生成,可能需要一些其他的配置。
换成初始布局linearlayout即可
bug2:
在按下fragment的跳转按钮时,没有响应,不能跳转另一个fragment。检查几遍,按钮名字都是正确的
原因:在项目的一个activity组件里有一个同名
bug3:
绑定 TabLayout 和 ViewPager后,点击Fragment2,没有按钮这些显示
原因:没有添加垂直显示,真正的Fragment可能在可显示的界面外!!!!
bugN:
。。。。。太多了,多到记不住