本篇目录:

...打开其他应用(或者系统应用)Activity或者Fragment总结

启动Activity:系统会先调用onCreate方法,然后调用onStart方法,最后调用onResume,Activity进入运行状态。当前Activity被其他Activity覆盖其上或被锁屏:系统会调用onPause方法,暂停当前Activity的执行。

通过将Activity的布局分散到Fragment中,你可以在运行时修改Activity的外观,并在由Activity管理的Back stack中保存那些变化。

androidfragment源码分析(android源码分析实录)  第1张

跟启动模式有关,首先该Activity实例已经存在,再次启动才可能触发。

Resumed:fragment在运行中的activity中可见。Paused:另一个activity处于前台且得到焦点,但是这个fragment所在的activtiy仍然可见(前台activity部分透明,或者没有覆盖全屏)。Stopped:fragment不可见。

我们需要清楚一点,就是系统不会单独地回收 Activity 或者 Fragment ,而是会在系统资源不足时,根据应用所在的进程的状态来杀死进程,以回收资源。

总结:如果要在Fragment中启动Activity并且要求返回结果,有两种结果方案:第一种:调用Fragment的startActivityForResult方法,然后在Fragment的onActivityResult的方法中处理返回的请求。

androidfragment源码分析(android源码分析实录)  第2张

Android-ViewModel原理解析

1、并将当前Activity的ViewModelStore保存到了所创建的对象的viewModelStore变量中,从而使得Activity在销毁后重建时能获取到销毁前的ViewModelStore,进而可获取到销毁前的ViewModel。

2、mViewModelStore 的 clear() 方法,进行数据的释放操作。

3、LiveData是一种具有生命周期感知能力的可观察数据持有类。 LiveData可以保证屏幕上的显示内容和数据一直保持同步。在项目中,LiveData一般是存放在ViewModel中,以保证app配置变更时,数据不会丢失。

4、首先,将Kotlin的Android依赖在Gradle文件中引入如下:让我们创建一个 HelloRepository 来提供一些数据:让我们创建一个ViewModel类来使用这些数据:用 module 函数声明模块。

androidfragment源码分析(android源码分析实录)  第3张

RecyclerView扩展(一)ViewPager2使用与原理浅析

1、ViewPager2实际是内部的 RecyclerView 在起作用,所以ViewPager2一定要设置 RecyclerView.Adapter 赋值,并且Adapter的ItemView的布局必须为 match_parent 。才能正常使用。

2、由于适配基于的是RecyclerView.Adapter,所以内存优化也直接采用RecyclerView.Adapter的内存优化机制,相对于viewpager,内存优化更高效合理,且notifyDataSetChanged也更高效了。

3、ViewPager2 嵌套滚动示例 展示了一种使用通用 自定义封装容器布局 解决此问题的办法。

Android——Fragment

Fragment必须总是被嵌入到一个activity之中,并且fragment的生命周期直接接受其宿主activity的生命周期的影响。

碎片(Fragment),是一种可以嵌入活动当中的 UI 片段,它能让程序更加合理和充分地利用大屏幕的空间,因此在平板上应用广泛。

Fragment是android0引入的新控件,果应用使用在0以下、6及以上的版本,需要引入v4包。Fragment支持在不同的Activity中使用并且可以处理自己的输入事件以及生命周期方法等。

Fragment是Android honeycomb 0新增的概念,Fragment名为碎片不过却和Activity十分相似,下面Android123介绍下Android Fragment的作用和用法。

到此,以上就是小编对于android源码分析实录的问题就介绍到这了,希望介绍的几点解答对大家有用,有任何问题和不懂的,欢迎各位老师在评论区讨论,给我留言。