Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Android学习之旅之 First Android App #2

Open
soapgu opened this issue Feb 20, 2021 · 0 comments
Open

Android学习之旅之 First Android App #2

soapgu opened this issue Feb 20, 2021 · 0 comments
Labels
Demo Demo 安卓 安卓

Comments

@soapgu
Copy link
Owner

soapgu commented Feb 20, 2021

其实春节期间已经想动笔了,主要空余的时间都用来看了一些初步的概念。动手的时间太少。

发现官网里面的教程做扶梯非常棒,所以跟着教程一步步做,一边巩固概念,一边熟悉AS这个新IDE。整个一套下来还是有所收获的。
安卓教程首页
我选择了这个教程作为切入点
图片
教程入口
首先安卓有安卓整个世界观,这个和windows是完全不同的系统。以前WPF的经验切忌不可僵化套用,只有某种程度上的相似性
首先安卓拥有4种应用 组件 App components

  • Activities

  • Services

  • Broadcast receivers

  • Content providers

    Activity 是安卓的核心组件。我上一篇Hello World中,就只有Activity。官方解释为Activity 是与用户交互的入口点。入口点这是和windows最大的区别点。打一个现实世界的比喻。一个Activity安卓程序的,而一个安卓应用可能有很多扇门进去,当然从桌面上点进去进入的Activity是main Activity,就是正大光明的大门。当然还有一些不同目的的小门,如果一个PDF的APP就提供了传入一个PDF访问地址的Activity,之后就直接展示相关PDF文档。而windows永远只有一个MainWindows。如果Activity对标WPF的话相当于Windows。

  1. 有独立的UI表达,这里是res/layout下的xml文件(这里对标xaml很近似,语法上也有对应)
  2. 相关的代码逻辑 XXXXActivity.java(对标XXXWindows.cs) ,可以编辑相关UI互动代码,访问UI相关元素
  3. 完整的生命周期及对应override回调函数(WPF里面是override回调函数和大量的Event)
  4. 相似的UI线程操作UI元素的法则(对标WPF里的Invoke)
    非常重要的不同之处
    5.生命周期的特殊性
    这也是安卓应用的特点,windows里面我们从不担心windows会被杀掉或者重建,一旦创建显示以后。要么就是关闭要么就是最小化,或者不在Active状态。windows的生命周期平时我们在开发的时候没有这么的“关心”。而安卓的APP完全不同。他需要考虑自己在操作的状态(Resume),显示未操作小窗模式(Pause),按了home键,被其他应用冲掉了,打电话了等等未显示的状态(Stop),在后台时间太长了被系统释放了(Destroy)。再被调用到前台(Restart)。可以说安卓的Activity 的特点就是这么的“颠沛流离”,是一个状态多变的组件。了解掌握好Activity 的状态以及迁移关系,做好状态切换相关的用户体验也是学好Activity 的关键

Application(android.app.Application)

被忽略的Application。吐槽下学习安卓一个非常奇怪的现象。官网的教程从头到尾都没有详细讲到这个类,为啥一个这么重要的知识点不单独开一个章节那。
因为引用日志组件的需要。我需要找到一个安卓全局初始化的入口,翻了官网半天没找到,最后自定义一个Application的派生类来完成这个任务
和WPF的System.Windows.Application完美对标
他作为应用的核心类
肩负了整个应用级别的回调函数(暂时只列出目前用到的)

  • onCreate(程序创建时,非常适合写初始化代码)
  • onTerminate
  • onConfigurationChanged

Fragment
Fragment,教程里面是安排和Activity一同学习的。从我的理解来说Fragment是依附于Activity。他比Activity要轻,同时继承了Activity一些元素

  • 独立的UI表达
  • 相关的逻辑代码处理XXXXFragment.java
  • 独立的生命周期及回调

同WPF类比,他更加类似于UserControl。这个特性和React的控件一样,是UI具有极高的 复用性/独立性/扩展性。教程里面的Fragment是和navigation结合起来的。目前Fragment还没用出比较惊艳的效果,我会在后面的学习中进一步探索

教程本身没啥太多亮点
吐槽下Navigation修改了参数以后,相关代码生成的FragmentDirection构造函数并不会马上修改,一定要重新Make Project(相当于Rebuild)

Application、Activity 、Fragment生命周期探究
为了方便日志特意引入了logger组件
logger的github
在build.gradle(Module:My_First_APP.app)里面
dependencies { implementation 'com.orhanobut:logger:2.2.0' }

增加一个APP.java 继承Application

public class App extends Application {
    @Override
    public void onCreate() {
        FormatStrategy formatStrategy = PrettyFormatStrategy.newBuilder()
                .showThreadInfo(true)
                .tag("SoapAPP")
                .build();
        Logger.addLogAdapter(new AndroidLogAdapter(formatStrategy));
        Logger.i("-------APP Create-------");
        super.onCreate();
    }

    @Override
    public void onTerminate() {
        super.onTerminate();
        Logger.i("-------APP Terminate-------");
    }

    @Override
    public void onConfigurationChanged(@NonNull Configuration newConfig) {
        super.onConfigurationChanged(newConfig);
        Logger.i("-------APP Config Changed--------");
    }
}

在MainActivity.java中主要的生命周期回调都加入了日志

  @Override
   protected void onCreate(Bundle savedInstanceState) {
       Logger.i("~~~~~~~~~~Activity Create");
       super.onCreate(savedInstanceState);
       //省略其他代码
   }

   @Override
   protected void onStart() {
       super.onStart();
       Logger.i("~~~~~~~~~~Activity Start");
   }

   @Override
   protected void onStop() {
       super.onStop();
       Logger.i("~~~~~~~~~~Activity Stop");
   }

   @Override
   protected void onRestart() {
       super.onRestart();
       Logger.i("~~~~~~~~~~Activity Restart");
   }

   @Override
   protected void onResume() {
       super.onResume();
       Logger.i("~~~~~~~~~~Activity Resume");
   }

   @Override
   public void onSaveInstanceState(@NonNull Bundle outState, @NonNull PersistableBundle outPersistentState) {
       super.onSaveInstanceState(outState, outPersistentState);
       Logger.i("~~~~~~~~~~Activity onSaveInstanceState");
   }

   @Override
   protected void onDestroy() {
       super.onDestroy();
       Logger.i("Activity Destroy");
   }

FirstFragment.java

@Override
   public void onCreate(@Nullable Bundle savedInstanceState) {
       Logger.i("~~~~~~~~~~Fragment onCreate Bundle null:" + (savedInstanceState == null ) );
       super.onCreate(savedInstanceState);
   }

   @Override
   public void onStart() {
       super.onStart();
       Logger.i("~~~~~~~~~~Fragment onStart");
   }

   @Override
   public void onResume() {
       super.onResume();
       Logger.i("~~~~~~~~~~Fragment onResume");
   }

   @Override
   public void onStop() {
       super.onStop();
       Logger.i("~~~~~~~~~~Fragment onStop");
   }

   @Override
   public void onDestroy() {
       super.onDestroy();
       Logger.i("~~~~~~~~~~Fragment onDestroy");
   }

   @Override
   public void onSaveInstanceState(@NonNull Bundle outState) {
       super.onSaveInstanceState(outState);
       Logger.i("~~~~~~~~~~Fragment onSaveInstanceState");
   }

这里出现了意外,Activity并没有调用onSaveInstanceState回调
后来发现原来是搞错了回调函数onSaveInstanceState,一共有两个哦

@Override
   public void onSaveInstanceState(@NonNull Bundle outState, @NonNull PersistableBundle outPersistentState) {
       super.onSaveInstanceState(outState, outPersistentState);
       Logger.i("~~~~~~~~~~Activity onSaveInstanceState 1111");
   }

   @Override
   protected void onSaveInstanceState(@NonNull Bundle outState) {
       super.onSaveInstanceState(outState);
       Logger.i("~~~~~~~~~~Activity onSaveInstanceState 2222");
   }

注意,这里~~~~~~~~~~Activity onSaveInstanceState 1111并没有被执行,真正生效的是下面一个回调

接下来执行我们的计划来看看各个组件的生命周期切换状况

  1. APP正常启动运行
  2. 按Home键把APP隐藏
  3. 最近任务里面再调出来
  4. 切换横屏竖屏
  5. 回退APP
  6. 从任务栏里面杀掉APP

未完待续...,晚上再更

2021-02-21 20:51:39.665 18086-18086/com.example.myfirstapp I/SoapAPP: 
┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2021-02-21 20:51:39.665 18086-18086/com.example.myfirstapp I/SoapAPP: │ Thread: main
2021-02-21 20:51:39.665 18086-18086/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 20:51:39.665 18086-18086/com.example.myfirstapp I/SoapAPP: │ Instrumentation.callApplicationOnCreate  (Instrumentation.java:1192)
2021-02-21 20:51:39.665 18086-18086/com.example.myfirstapp I/SoapAPP: │    App.onCreate  (App.java:21)
2021-02-21 20:51:39.665 18086-18086/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 20:51:39.665 18086-18086/com.example.myfirstapp I/SoapAPP: │ -------APP Create-------
2021-02-21 20:51:39.665 18086-18086/com.example.myfirstapp I/SoapAPP: └────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2021-02-21 20:51:39.737 18086-18086/com.example.myfirstapp I/SoapAPP: ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2021-02-21 20:51:39.737 18086-18086/com.example.myfirstapp I/SoapAPP: │ Thread: main
2021-02-21 20:51:39.737 18086-18086/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 20:51:39.737 18086-18086/com.example.myfirstapp I/SoapAPP: │ Activity.performCreate  (Activity.java:8000)
2021-02-21 20:51:39.737 18086-18086/com.example.myfirstapp I/SoapAPP: │    MainActivity.onCreate  (MainActivity.java:23)
2021-02-21 20:51:39.737 18086-18086/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 20:51:39.737 18086-18086/com.example.myfirstapp I/SoapAPP: │ ~~~~~~~~~~Activity Create
2021-02-21 20:51:39.737 18086-18086/com.example.myfirstapp I/SoapAPP: └────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2021-02-21 20:51:39.905 18086-18086/com.example.myfirstapp I/SoapAPP: ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2021-02-21 20:51:39.905 18086-18086/com.example.myfirstapp I/SoapAPP: │ Thread: main
2021-02-21 20:51:39.905 18086-18086/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 20:51:39.905 18086-18086/com.example.myfirstapp I/SoapAPP: │ Fragment.performCreate  (Fragment.java:2684)
2021-02-21 20:51:39.905 18086-18086/com.example.myfirstapp I/SoapAPP: │    FirstFragment.onCreate  (FirstFragment.java:70)
2021-02-21 20:51:39.906 18086-18086/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 20:51:39.906 18086-18086/com.example.myfirstapp I/SoapAPP: │ ~~~~~~~~~~Fragment onCreate Bundle null:true
2021-02-21 20:51:39.906 18086-18086/com.example.myfirstapp I/SoapAPP: └────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2021-02-21 20:51:39.945 18086-18086/com.example.myfirstapp I/SoapAPP: ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2021-02-21 20:51:39.945 18086-18086/com.example.myfirstapp I/SoapAPP: │ Thread: main
2021-02-21 20:51:39.945 18086-18086/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 20:51:39.945 18086-18086/com.example.myfirstapp I/SoapAPP: │ Fragment.performStart  (Fragment.java:2730)
2021-02-21 20:51:39.945 18086-18086/com.example.myfirstapp I/SoapAPP: │    FirstFragment.onStart  (FirstFragment.java:77)
2021-02-21 20:51:39.945 18086-18086/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 20:51:39.945 18086-18086/com.example.myfirstapp I/SoapAPP: │ ~~~~~~~~~~Fragment onStart
2021-02-21 20:51:39.945 18086-18086/com.example.myfirstapp I/SoapAPP: └────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2021-02-21 20:51:39.948 18086-18086/com.example.myfirstapp I/SoapAPP: ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2021-02-21 20:51:39.948 18086-18086/com.example.myfirstapp I/SoapAPP: │ Thread: main
2021-02-21 20:51:39.948 18086-18086/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 20:51:39.948 18086-18086/com.example.myfirstapp I/SoapAPP: │ Instrumentation.callActivityOnStart  (Instrumentation.java:1435)
2021-02-21 20:51:39.948 18086-18086/com.example.myfirstapp I/SoapAPP: │    MainActivity.onStart  (MainActivity.java:42)
2021-02-21 20:51:39.948 18086-18086/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 20:51:39.948 18086-18086/com.example.myfirstapp I/SoapAPP: │ ~~~~~~~~~~Activity Start
2021-02-21 20:51:39.948 18086-18086/com.example.myfirstapp I/SoapAPP: └────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2021-02-21 20:51:39.950 18086-18086/com.example.myfirstapp I/SoapAPP: ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2021-02-21 20:51:39.950 18086-18086/com.example.myfirstapp I/SoapAPP: │ Thread: main
2021-02-21 20:51:39.950 18086-18086/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 20:51:39.950 18086-18086/com.example.myfirstapp I/SoapAPP: │ Instrumentation.callActivityOnResume  (Instrumentation.java:1456)
2021-02-21 20:51:39.950 18086-18086/com.example.myfirstapp I/SoapAPP: │    MainActivity.onResume  (MainActivity.java:60)
2021-02-21 20:51:39.950 18086-18086/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 20:51:39.950 18086-18086/com.example.myfirstapp I/SoapAPP: │ ~~~~~~~~~~Activity Resume
2021-02-21 20:51:39.950 18086-18086/com.example.myfirstapp I/SoapAPP: └────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2021-02-21 20:51:39.950 18086-18086/com.example.myfirstapp I/SoapAPP: ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2021-02-21 20:51:39.950 18086-18086/com.example.myfirstapp I/SoapAPP: │ Thread: main
2021-02-21 20:51:39.950 18086-18086/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 20:51:39.950 18086-18086/com.example.myfirstapp I/SoapAPP: │ Fragment.performResume  (Fragment.java:2747)
2021-02-21 20:51:39.950 18086-18086/com.example.myfirstapp I/SoapAPP: │    FirstFragment.onResume  (FirstFragment.java:83)
2021-02-21 20:51:39.950 18086-18086/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 20:51:39.950 18086-18086/com.example.myfirstapp I/SoapAPP: │ ~~~~~~~~~~Fragment onResume
2021-02-21 20:51:39.950 18086-18086/com.example.myfirstapp I/SoapAPP: └─────────────────────────────────────────────────────────────────────────────

1程序启动完成

2 程序被隐藏

───────────────────────────────────
2021-02-21 20:52:03.834 18086-18086/com.example.myfirstapp I/SoapAPP: ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2021-02-21 20:52:03.834 18086-18086/com.example.myfirstapp I/SoapAPP: │ Thread: main
2021-02-21 20:52:03.835 18086-18086/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 20:52:03.835 18086-18086/com.example.myfirstapp I/SoapAPP: │ Fragment.performStop  (Fragment.java:2894)
2021-02-21 20:52:03.835 18086-18086/com.example.myfirstapp I/SoapAPP: │    FirstFragment.onStop  (FirstFragment.java:89)
2021-02-21 20:52:03.835 18086-18086/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 20:52:03.835 18086-18086/com.example.myfirstapp I/SoapAPP: │ ~~~~~~~~~~Fragment onStop
2021-02-21 20:52:03.835 18086-18086/com.example.myfirstapp I/SoapAPP: └────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2021-02-21 20:52:03.836 18086-18086/com.example.myfirstapp I/SoapAPP: ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2021-02-21 20:52:03.836 18086-18086/com.example.myfirstapp I/SoapAPP: │ Thread: main
2021-02-21 20:52:03.836 18086-18086/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 20:52:03.836 18086-18086/com.example.myfirstapp I/SoapAPP: │ Instrumentation.callActivityOnStop  (Instrumentation.java:1476)
2021-02-21 20:52:03.836 18086-18086/com.example.myfirstapp I/SoapAPP: │    MainActivity.onStop  (MainActivity.java:48)
2021-02-21 20:52:03.836 18086-18086/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 20:52:03.836 18086-18086/com.example.myfirstapp I/SoapAPP: │ ~~~~~~~~~~Activity Stop
2021-02-21 20:52:03.836 18086-18086/com.example.myfirstapp I/SoapAPP: └────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2021-02-21 20:52:03.845 18086-18086/com.example.myfirstapp I/SoapAPP: ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2021-02-21 20:52:03.845 18086-18086/com.example.myfirstapp I/SoapAPP: │ Thread: main
2021-02-21 20:52:03.845 18086-18086/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 20:52:03.845 18086-18086/com.example.myfirstapp I/SoapAPP: │ Fragment.performSaveInstanceState  (Fragment.java:2863)
2021-02-21 20:52:03.845 18086-18086/com.example.myfirstapp I/SoapAPP: │    FirstFragment.onSaveInstanceState  (FirstFragment.java:101)
2021-02-21 20:52:03.845 18086-18086/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 20:52:03.845 18086-18086/com.example.myfirstapp I/SoapAPP: │ ~~~~~~~~~~Fragment onSaveInstanceState
2021-02-21 20:52:03.845 18086-18086/com.example.myfirstapp I/SoapAPP: └────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2021-02-21 20:52:03.848 18086-18086/com.example.myfirstapp I/SoapAPP: ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2021-02-21 20:52:03.848 18086-18086/com.example.myfirstapp I/SoapAPP: │ Thread: main
2021-02-21 20:52:03.848 18086-18086/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 20:52:03.848 18086-18086/com.example.myfirstapp I/SoapAPP: │ Activity.performSaveInstanceState  (Activity.java:2163)
2021-02-21 20:52:03.849 18086-18086/com.example.myfirstapp I/SoapAPP: │    MainActivity.onSaveInstanceState  (MainActivity.java:72)
2021-02-21 20:52:03.849 18086-18086/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 20:52:03.849 18086-18086/com.example.myfirstapp I/SoapAPP: │ ~~~~~~~~~~Activity onSaveInstanceState 2222
2021-02-21 20:52:03.849 18086-18086/com.example.myfirstapp I/SoapAPP: └─────────────────────────────────────────────────────────────────────────────

3 开始重新显示APP

───────────────────────────────────
2021-02-21 20:52:15.755 18086-18086/com.example.myfirstapp I/SoapAPP: ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2021-02-21 20:52:15.782 18086-18086/com.example.myfirstapp I/SoapAPP: │ Thread: main
2021-02-21 20:52:15.782 18086-18086/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 20:52:15.782 18086-18086/com.example.myfirstapp I/SoapAPP: │ Instrumentation.callActivityOnRestart  (Instrumentation.java:1445)
2021-02-21 20:52:15.782 18086-18086/com.example.myfirstapp I/SoapAPP: │    MainActivity.onRestart  (MainActivity.java:54)
2021-02-21 20:52:15.782 18086-18086/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 20:52:15.782 18086-18086/com.example.myfirstapp I/SoapAPP: │ ~~~~~~~~~~Activity Restart
2021-02-21 20:52:15.782 18086-18086/com.example.myfirstapp I/SoapAPP: └────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2021-02-21 20:52:15.783 18086-18086/com.example.myfirstapp I/SoapAPP: ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2021-02-21 20:52:15.783 18086-18086/com.example.myfirstapp I/SoapAPP: │ Thread: main
2021-02-21 20:52:15.783 18086-18086/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 20:52:15.783 18086-18086/com.example.myfirstapp I/SoapAPP: │ Fragment.performStart  (Fragment.java:2730)
2021-02-21 20:52:15.783 18086-18086/com.example.myfirstapp I/SoapAPP: │    FirstFragment.onStart  (FirstFragment.java:77)
2021-02-21 20:52:15.783 18086-18086/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 20:52:15.783 18086-18086/com.example.myfirstapp I/SoapAPP: │ ~~~~~~~~~~Fragment onStart
2021-02-21 20:52:15.783 18086-18086/com.example.myfirstapp I/SoapAPP: └────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2021-02-21 20:52:15.783 18086-18086/com.example.myfirstapp I/SoapAPP: ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2021-02-21 20:52:15.783 18086-18086/com.example.myfirstapp I/SoapAPP: │ Thread: main
2021-02-21 20:52:15.783 18086-18086/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 20:52:15.784 18086-18086/com.example.myfirstapp I/SoapAPP: │ Instrumentation.callActivityOnStart  (Instrumentation.java:1435)
2021-02-21 20:52:15.784 18086-18086/com.example.myfirstapp I/SoapAPP: │    MainActivity.onStart  (MainActivity.java:42)
2021-02-21 20:52:15.784 18086-18086/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 20:52:15.784 18086-18086/com.example.myfirstapp I/SoapAPP: │ ~~~~~~~~~~Activity Start
2021-02-21 20:52:15.784 18086-18086/com.example.myfirstapp I/SoapAPP: └────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2021-02-21 20:52:15.784 18086-18086/com.example.myfirstapp I/SoapAPP: ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2021-02-21 20:52:15.784 18086-18086/com.example.myfirstapp I/SoapAPP: │ Thread: main
2021-02-21 20:52:15.784 18086-18086/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 20:52:15.785 18086-18086/com.example.myfirstapp I/SoapAPP: │ Instrumentation.callActivityOnResume  (Instrumentation.java:1456)
2021-02-21 20:52:15.785 18086-18086/com.example.myfirstapp I/SoapAPP: │    MainActivity.onResume  (MainActivity.java:60)
2021-02-21 20:52:15.785 18086-18086/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 20:52:15.785 18086-18086/com.example.myfirstapp I/SoapAPP: │ ~~~~~~~~~~Activity Resume
2021-02-21 20:52:15.785 18086-18086/com.example.myfirstapp I/SoapAPP: └────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2021-02-21 20:52:15.785 18086-18086/com.example.myfirstapp I/SoapAPP: ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2021-02-21 20:52:15.785 18086-18086/com.example.myfirstapp I/SoapAPP: │ Thread: main
2021-02-21 20:52:15.785 18086-18086/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 20:52:15.785 18086-18086/com.example.myfirstapp I/SoapAPP: │ Fragment.performResume  (Fragment.java:2747)
2021-02-21 20:52:15.785 18086-18086/com.example.myfirstapp I/SoapAPP: │    FirstFragment.onResume  (FirstFragment.java:83)
2021-02-21 20:52:15.785 18086-18086/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 20:52:15.785 18086-18086/com.example.myfirstapp I/SoapAPP: │ ~~~~~~~~~~Fragment onResume
2021-02-21 20:52:15.785 18086-18086/com.example.myfirstapp I/SoapAPP: └────────────────────────────────────────────────────────────────────────────────────────────────────────────────

4 翻转一次屏幕

2021-02-21 20:54:36.915 18086-18086/com.example.myfirstapp I/SoapAPP: ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2021-02-21 20:54:36.915 18086-18086/com.example.myfirstapp I/SoapAPP: │ Thread: main
2021-02-21 20:54:36.915 18086-18086/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 20:54:36.925 18086-18086/com.example.myfirstapp I/SoapAPP: │ ActivityThread.performConfigurationChanged  (ActivityThread.java:5618)
2021-02-21 20:54:36.925 18086-18086/com.example.myfirstapp I/SoapAPP: │    App.onConfigurationChanged  (App.java:34)
2021-02-21 20:54:36.925 18086-18086/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 20:54:36.925 18086-18086/com.example.myfirstapp I/SoapAPP: │ -------APP Config Changed--------
2021-02-21 20:54:36.925 18086-18086/com.example.myfirstapp I/SoapAPP: └────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2021-02-21 20:54:36.928 18086-18086/com.example.myfirstapp I/SoapAPP: ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2021-02-21 20:54:36.928 18086-18086/com.example.myfirstapp I/SoapAPP: │ Thread: main
2021-02-21 20:54:36.928 18086-18086/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 20:54:36.928 18086-18086/com.example.myfirstapp I/SoapAPP: │ ActivityThread.performConfigurationChanged  (ActivityThread.java:5618)
2021-02-21 20:54:36.928 18086-18086/com.example.myfirstapp I/SoapAPP: │    App.onConfigurationChanged  (App.java:34)
2021-02-21 20:54:36.928 18086-18086/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 20:54:36.928 18086-18086/com.example.myfirstapp I/SoapAPP: │ -------APP Config Changed--------
2021-02-21 20:54:36.928 18086-18086/com.example.myfirstapp I/SoapAPP: └────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2021-02-21 20:54:36.936 18086-18086/com.example.myfirstapp I/SoapAPP: ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2021-02-21 20:54:36.937 18086-18086/com.example.myfirstapp I/SoapAPP: │ Thread: main
2021-02-21 20:54:36.937 18086-18086/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 20:54:36.938 18086-18086/com.example.myfirstapp I/SoapAPP: │ Fragment.performStop  (Fragment.java:2894)
2021-02-21 20:54:36.938 18086-18086/com.example.myfirstapp I/SoapAPP: │    FirstFragment.onStop  (FirstFragment.java:89)
2021-02-21 20:54:36.938 18086-18086/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 20:54:36.938 18086-18086/com.example.myfirstapp I/SoapAPP: │ ~~~~~~~~~~Fragment onStop
2021-02-21 20:54:36.938 18086-18086/com.example.myfirstapp I/SoapAPP: └────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2021-02-21 20:54:36.938 18086-18086/com.example.myfirstapp I/SoapAPP: ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2021-02-21 20:54:36.938 18086-18086/com.example.myfirstapp I/SoapAPP: │ Thread: main
2021-02-21 20:54:36.938 18086-18086/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 20:54:36.938 18086-18086/com.example.myfirstapp I/SoapAPP: │ Instrumentation.callActivityOnStop  (Instrumentation.java:1476)
2021-02-21 20:54:36.939 18086-18086/com.example.myfirstapp I/SoapAPP: │    MainActivity.onStop  (MainActivity.java:48)
2021-02-21 20:54:36.939 18086-18086/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 20:54:36.939 18086-18086/com.example.myfirstapp I/SoapAPP: │ ~~~~~~~~~~Activity Stop
2021-02-21 20:54:36.939 18086-18086/com.example.myfirstapp I/SoapAPP: └────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2021-02-21 20:54:36.939 18086-18086/com.example.myfirstapp I/SoapAPP: ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2021-02-21 20:54:36.939 18086-18086/com.example.myfirstapp I/SoapAPP: │ Thread: main
2021-02-21 20:54:36.939 18086-18086/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 20:54:36.939 18086-18086/com.example.myfirstapp I/SoapAPP: │ Fragment.performSaveInstanceState  (Fragment.java:2863)
2021-02-21 20:54:36.939 18086-18086/com.example.myfirstapp I/SoapAPP: │    FirstFragment.onSaveInstanceState  (FirstFragment.java:101)
2021-02-21 20:54:36.939 18086-18086/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 20:54:36.940 18086-18086/com.example.myfirstapp I/SoapAPP: │ ~~~~~~~~~~Fragment onSaveInstanceState
2021-02-21 20:54:36.940 18086-18086/com.example.myfirstapp I/SoapAPP: └────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2021-02-21 20:54:36.940 18086-18086/com.example.myfirstapp I/SoapAPP: ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2021-02-21 20:54:36.940 18086-18086/com.example.myfirstapp I/SoapAPP: │ Thread: main
2021-02-21 20:54:36.940 18086-18086/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 20:54:36.940 18086-18086/com.example.myfirstapp I/SoapAPP: │ Activity.performSaveInstanceState  (Activity.java:2163)
2021-02-21 20:54:36.940 18086-18086/com.example.myfirstapp I/SoapAPP: │    MainActivity.onSaveInstanceState  (MainActivity.java:72)
2021-02-21 20:54:36.940 18086-18086/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 20:54:36.943 18086-18086/com.example.myfirstapp I/SoapAPP: │ ~~~~~~~~~~Activity onSaveInstanceState 2222
2021-02-21 20:54:36.943 18086-18086/com.example.myfirstapp I/SoapAPP: └────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2021-02-21 20:54:36.951 18086-18086/com.example.myfirstapp I/SoapAPP: ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2021-02-21 20:54:36.951 18086-18086/com.example.myfirstapp I/SoapAPP: │ Thread: main
2021-02-21 20:54:36.951 18086-18086/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 20:54:36.951 18086-18086/com.example.myfirstapp I/SoapAPP: │ Fragment.performDestroy  (Fragment.java:2927)
2021-02-21 20:54:36.951 18086-18086/com.example.myfirstapp I/SoapAPP: │    FirstFragment.onDestroy  (FirstFragment.java:95)
2021-02-21 20:54:36.951 18086-18086/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 20:54:36.952 18086-18086/com.example.myfirstapp I/SoapAPP: │ ~~~~~~~~~~Fragment onDestroy
2021-02-21 20:54:36.952 18086-18086/com.example.myfirstapp I/SoapAPP: └────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2021-02-21 20:54:36.952 18086-18086/com.example.myfirstapp I/SoapAPP: ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2021-02-21 20:54:36.953 18086-18086/com.example.myfirstapp I/SoapAPP: │ Thread: main
2021-02-21 20:54:36.953 18086-18086/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 20:54:36.953 18086-18086/com.example.myfirstapp I/SoapAPP: │ Activity.performDestroy  (Activity.java:8245)
2021-02-21 20:54:36.953 18086-18086/com.example.myfirstapp I/SoapAPP: │    MainActivity.onDestroy  (MainActivity.java:78)
2021-02-21 20:54:36.953 18086-18086/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 20:54:36.953 18086-18086/com.example.myfirstapp I/SoapAPP: │ Activity Destroy
2021-02-21 20:54:36.953 18086-18086/com.example.myfirstapp I/SoapAPP: └────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2021-02-21 20:54:36.974 18086-18086/com.example.myfirstapp I/SoapAPP: ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2021-02-21 20:54:36.975 18086-18086/com.example.myfirstapp I/SoapAPP: │ Thread: main
2021-02-21 20:54:36.975 18086-18086/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 20:54:36.975 18086-18086/com.example.myfirstapp I/SoapAPP: │ Activity.performCreate  (Activity.java:8000)
2021-02-21 20:54:36.975 18086-18086/com.example.myfirstapp I/SoapAPP: │    MainActivity.onCreate  (MainActivity.java:23)
2021-02-21 20:54:36.975 18086-18086/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 20:54:36.975 18086-18086/com.example.myfirstapp I/SoapAPP: │ ~~~~~~~~~~Activity Create
2021-02-21 20:54:36.975 18086-18086/com.example.myfirstapp I/SoapAPP: └────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2021-02-21 20:54:36.999 18086-18086/com.example.myfirstapp I/SoapAPP: ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2021-02-21 20:54:36.999 18086-18086/com.example.myfirstapp I/SoapAPP: │ Thread: main
2021-02-21 20:54:36.999 18086-18086/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 20:54:36.999 18086-18086/com.example.myfirstapp I/SoapAPP: │ Fragment.performCreate  (Fragment.java:2684)
2021-02-21 20:54:36.999 18086-18086/com.example.myfirstapp I/SoapAPP: │    FirstFragment.onCreate  (FirstFragment.java:70)
2021-02-21 20:54:36.999 18086-18086/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 20:54:36.999 18086-18086/com.example.myfirstapp I/SoapAPP: │ ~~~~~~~~~~Fragment onCreate Bundle null:false
2021-02-21 20:54:36.999 18086-18086/com.example.myfirstapp I/SoapAPP: └────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2021-02-21 20:54:37.080 18086-18086/com.example.myfirstapp I/SoapAPP: ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2021-02-21 20:54:37.080 18086-18086/com.example.myfirstapp I/SoapAPP: │ Thread: main
2021-02-21 20:54:37.080 18086-18086/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 20:54:37.080 18086-18086/com.example.myfirstapp I/SoapAPP: │ Fragment.performStart  (Fragment.java:2730)
2021-02-21 20:54:37.080 18086-18086/com.example.myfirstapp I/SoapAPP: │    FirstFragment.onStart  (FirstFragment.java:77)
2021-02-21 20:54:37.080 18086-18086/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 20:54:37.081 18086-18086/com.example.myfirstapp I/SoapAPP: │ ~~~~~~~~~~Fragment onStart
2021-02-21 20:54:37.081 18086-18086/com.example.myfirstapp I/SoapAPP: └────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2021-02-21 20:54:37.082 18086-18086/com.example.myfirstapp I/SoapAPP: ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2021-02-21 20:54:37.082 18086-18086/com.example.myfirstapp I/SoapAPP: │ Thread: main
2021-02-21 20:54:37.082 18086-18086/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 20:54:37.082 18086-18086/com.example.myfirstapp I/SoapAPP: │ Instrumentation.callActivityOnStart  (Instrumentation.java:1435)
2021-02-21 20:54:37.082 18086-18086/com.example.myfirstapp I/SoapAPP: │    MainActivity.onStart  (MainActivity.java:42)
2021-02-21 20:54:37.082 18086-18086/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 20:54:37.082 18086-18086/com.example.myfirstapp I/SoapAPP: │ ~~~~~~~~~~Activity Start
2021-02-21 20:54:37.082 18086-18086/com.example.myfirstapp I/SoapAPP: └────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2021-02-21 20:54:37.083 18086-18086/com.example.myfirstapp I/SoapAPP: ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2021-02-21 20:54:37.086 18086-18086/com.example.myfirstapp I/SoapAPP: │ Thread: main
2021-02-21 20:54:37.086 18086-18086/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 20:54:37.086 18086-18086/com.example.myfirstapp I/SoapAPP: │ Instrumentation.callActivityOnResume  (Instrumentation.java:1456)
2021-02-21 20:54:37.086 18086-18086/com.example.myfirstapp I/SoapAPP: │    MainActivity.onResume  (MainActivity.java:60)
2021-02-21 20:54:37.086 18086-18086/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 20:54:37.086 18086-18086/com.example.myfirstapp I/SoapAPP: │ ~~~~~~~~~~Activity Resume
2021-02-21 20:54:37.086 18086-18086/com.example.myfirstapp I/SoapAPP: └────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2021-02-21 20:54:37.087 18086-18086/com.example.myfirstapp I/SoapAPP: ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2021-02-21 20:54:37.087 18086-18086/com.example.myfirstapp I/SoapAPP: │ Thread: main
2021-02-21 20:54:37.087 18086-18086/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 20:54:37.087 18086-18086/com.example.myfirstapp I/SoapAPP: │ Fragment.performResume  (Fragment.java:2747)
2021-02-21 20:54:37.087 18086-18086/com.example.myfirstapp I/SoapAPP: │    FirstFragment.onResume  (FirstFragment.java:83)
2021-02-21 20:54:37.087 18086-18086/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 20:54:37.087 18086-18086/com.example.myfirstapp I/SoapAPP: │ ~~~~~~~~~~Fragment onResume
2021-02-21 20:54:37.087 18086-18086/com.example.myfirstapp I/SoapAPP: └────────────────────────────────────────────────────────────────────────────────────────────────────────────────

5 APP重现显示后,再次翻转回来

2021-02-21 20:54:45.727 18086-18086/com.example.myfirstapp I/SoapAPP: ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2021-02-21 20:54:45.727 18086-18086/com.example.myfirstapp I/SoapAPP: │ Thread: main
2021-02-21 20:54:45.727 18086-18086/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 20:54:45.728 18086-18086/com.example.myfirstapp I/SoapAPP: │ ActivityThread.performConfigurationChanged  (ActivityThread.java:5618)
2021-02-21 20:54:45.728 18086-18086/com.example.myfirstapp I/SoapAPP: │    App.onConfigurationChanged  (App.java:34)
2021-02-21 20:54:45.728 18086-18086/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 20:54:45.728 18086-18086/com.example.myfirstapp I/SoapAPP: │ -------APP Config Changed--------
2021-02-21 20:54:45.728 18086-18086/com.example.myfirstapp I/SoapAPP: └────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2021-02-21 20:54:45.738 18086-18086/com.example.myfirstapp I/SoapAPP: ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2021-02-21 20:54:45.738 18086-18086/com.example.myfirstapp I/SoapAPP: │ Thread: main
2021-02-21 20:54:45.738 18086-18086/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 20:54:45.738 18086-18086/com.example.myfirstapp I/SoapAPP: │ Fragment.performStop  (Fragment.java:2894)
2021-02-21 20:54:45.738 18086-18086/com.example.myfirstapp I/SoapAPP: │    FirstFragment.onStop  (FirstFragment.java:89)
2021-02-21 20:54:45.738 18086-18086/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 20:54:45.738 18086-18086/com.example.myfirstapp I/SoapAPP: │ ~~~~~~~~~~Fragment onStop
2021-02-21 20:54:45.738 18086-18086/com.example.myfirstapp I/SoapAPP: └────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2021-02-21 20:54:45.738 18086-18086/com.example.myfirstapp I/SoapAPP: ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2021-02-21 20:54:45.738 18086-18086/com.example.myfirstapp I/SoapAPP: │ Thread: main
2021-02-21 20:54:45.738 18086-18086/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 20:54:45.738 18086-18086/com.example.myfirstapp I/SoapAPP: │ Instrumentation.callActivityOnStop  (Instrumentation.java:1476)
2021-02-21 20:54:45.738 18086-18086/com.example.myfirstapp I/SoapAPP: │    MainActivity.onStop  (MainActivity.java:48)
2021-02-21 20:54:45.738 18086-18086/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 20:54:45.738 18086-18086/com.example.myfirstapp I/SoapAPP: │ ~~~~~~~~~~Activity Stop
2021-02-21 20:54:45.738 18086-18086/com.example.myfirstapp I/SoapAPP: └────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2021-02-21 20:54:45.739 18086-18086/com.example.myfirstapp I/SoapAPP: ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2021-02-21 20:54:45.741 18086-18086/com.example.myfirstapp I/SoapAPP: │ Thread: main
2021-02-21 20:54:45.741 18086-18086/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 20:54:45.741 18086-18086/com.example.myfirstapp I/SoapAPP: │ Fragment.performSaveInstanceState  (Fragment.java:2863)
2021-02-21 20:54:45.741 18086-18086/com.example.myfirstapp I/SoapAPP: │    FirstFragment.onSaveInstanceState  (FirstFragment.java:101)
2021-02-21 20:54:45.741 18086-18086/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 20:54:45.741 18086-18086/com.example.myfirstapp I/SoapAPP: │ ~~~~~~~~~~Fragment onSaveInstanceState
2021-02-21 20:54:45.741 18086-18086/com.example.myfirstapp I/SoapAPP: └────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2021-02-21 20:54:45.741 18086-18086/com.example.myfirstapp I/SoapAPP: ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2021-02-21 20:54:45.741 18086-18086/com.example.myfirstapp I/SoapAPP: │ Thread: main
2021-02-21 20:54:45.741 18086-18086/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 20:54:45.741 18086-18086/com.example.myfirstapp I/SoapAPP: │ Activity.performSaveInstanceState  (Activity.java:2163)
2021-02-21 20:54:45.741 18086-18086/com.example.myfirstapp I/SoapAPP: │    MainActivity.onSaveInstanceState  (MainActivity.java:72)
2021-02-21 20:54:45.741 18086-18086/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 20:54:45.741 18086-18086/com.example.myfirstapp I/SoapAPP: │ ~~~~~~~~~~Activity onSaveInstanceState 2222
2021-02-21 20:54:45.741 18086-18086/com.example.myfirstapp I/SoapAPP: └────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2021-02-21 20:54:45.743 18086-18086/com.example.myfirstapp I/SoapAPP: ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2021-02-21 20:54:45.743 18086-18086/com.example.myfirstapp I/SoapAPP: │ Thread: main
2021-02-21 20:54:45.743 18086-18086/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 20:54:45.743 18086-18086/com.example.myfirstapp I/SoapAPP: │ Fragment.performDestroy  (Fragment.java:2927)
2021-02-21 20:54:45.743 18086-18086/com.example.myfirstapp I/SoapAPP: │    FirstFragment.onDestroy  (FirstFragment.java:95)
2021-02-21 20:54:45.743 18086-18086/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 20:54:45.743 18086-18086/com.example.myfirstapp I/SoapAPP: │ ~~~~~~~~~~Fragment onDestroy
2021-02-21 20:54:45.743 18086-18086/com.example.myfirstapp I/SoapAPP: └────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2021-02-21 20:54:45.743 18086-18086/com.example.myfirstapp I/SoapAPP: ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2021-02-21 20:54:45.745 18086-18086/com.example.myfirstapp I/SoapAPP: │ Thread: main
2021-02-21 20:54:45.745 18086-18086/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 20:54:45.745 18086-18086/com.example.myfirstapp I/SoapAPP: │ Activity.performDestroy  (Activity.java:8245)
2021-02-21 20:54:45.745 18086-18086/com.example.myfirstapp I/SoapAPP: │    MainActivity.onDestroy  (MainActivity.java:78)
2021-02-21 20:54:45.745 18086-18086/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 20:54:45.746 18086-18086/com.example.myfirstapp I/SoapAPP: │ Activity Destroy
2021-02-21 20:54:45.746 18086-18086/com.example.myfirstapp I/SoapAPP: └────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2021-02-21 20:54:45.767 18086-18086/com.example.myfirstapp I/SoapAPP: ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2021-02-21 20:54:45.768 18086-18086/com.example.myfirstapp I/SoapAPP: │ Thread: main
2021-02-21 20:54:45.768 18086-18086/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 20:54:45.768 18086-18086/com.example.myfirstapp I/SoapAPP: │ Activity.performCreate  (Activity.java:8000)
2021-02-21 20:54:45.768 18086-18086/com.example.myfirstapp I/SoapAPP: │    MainActivity.onCreate  (MainActivity.java:23)
2021-02-21 20:54:45.768 18086-18086/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 20:54:45.768 18086-18086/com.example.myfirstapp I/SoapAPP: │ ~~~~~~~~~~Activity Create
2021-02-21 20:54:45.768 18086-18086/com.example.myfirstapp I/SoapAPP: └────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2021-02-21 20:54:45.788 18086-18086/com.example.myfirstapp I/SoapAPP: ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2021-02-21 20:54:45.789 18086-18086/com.example.myfirstapp I/SoapAPP: │ Thread: main
2021-02-21 20:54:45.789 18086-18086/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 20:54:45.789 18086-18086/com.example.myfirstapp I/SoapAPP: │ Fragment.performCreate  (Fragment.java:2684)
2021-02-21 20:54:45.789 18086-18086/com.example.myfirstapp I/SoapAPP: │    FirstFragment.onCreate  (FirstFragment.java:70)
2021-02-21 20:54:45.789 18086-18086/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 20:54:45.789 18086-18086/com.example.myfirstapp I/SoapAPP: │ ~~~~~~~~~~Fragment onCreate Bundle null:false
2021-02-21 20:54:45.789 18086-18086/com.example.myfirstapp I/SoapAPP: └────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2021-02-21 20:54:45.831 18086-18086/com.example.myfirstapp I/SoapAPP: ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2021-02-21 20:54:45.832 18086-18086/com.example.myfirstapp I/SoapAPP: │ Thread: main
2021-02-21 20:54:45.832 18086-18086/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 20:54:45.832 18086-18086/com.example.myfirstapp I/SoapAPP: │ Fragment.performStart  (Fragment.java:2730)
2021-02-21 20:54:45.832 18086-18086/com.example.myfirstapp I/SoapAPP: │    FirstFragment.onStart  (FirstFragment.java:77)
2021-02-21 20:54:45.832 18086-18086/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 20:54:45.832 18086-18086/com.example.myfirstapp I/SoapAPP: │ ~~~~~~~~~~Fragment onStart
2021-02-21 20:54:45.832 18086-18086/com.example.myfirstapp I/SoapAPP: └────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2021-02-21 20:54:45.832 18086-18086/com.example.myfirstapp I/SoapAPP: ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2021-02-21 20:54:45.833 18086-18086/com.example.myfirstapp I/SoapAPP: │ Thread: main
2021-02-21 20:54:45.833 18086-18086/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 20:54:45.833 18086-18086/com.example.myfirstapp I/SoapAPP: │ Instrumentation.callActivityOnStart  (Instrumentation.java:1435)
2021-02-21 20:54:45.833 18086-18086/com.example.myfirstapp I/SoapAPP: │    MainActivity.onStart  (MainActivity.java:42)
2021-02-21 20:54:45.833 18086-18086/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 20:54:45.833 18086-18086/com.example.myfirstapp I/SoapAPP: │ ~~~~~~~~~~Activity Start
2021-02-21 20:54:45.833 18086-18086/com.example.myfirstapp I/SoapAPP: └────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2021-02-21 20:54:45.834 18086-18086/com.example.myfirstapp I/SoapAPP: ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2021-02-21 20:54:45.835 18086-18086/com.example.myfirstapp I/SoapAPP: │ Thread: main
2021-02-21 20:54:45.835 18086-18086/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 20:54:45.835 18086-18086/com.example.myfirstapp I/SoapAPP: │ Instrumentation.callActivityOnResume  (Instrumentation.java:1456)
2021-02-21 20:54:45.835 18086-18086/com.example.myfirstapp I/SoapAPP: │    MainActivity.onResume  (MainActivity.java:60)
2021-02-21 20:54:45.835 18086-18086/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 20:54:45.835 18086-18086/com.example.myfirstapp I/SoapAPP: │ ~~~~~~~~~~Activity Resume
2021-02-21 20:54:45.835 18086-18086/com.example.myfirstapp I/SoapAPP: └────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2021-02-21 20:54:45.836 18086-18086/com.example.myfirstapp I/SoapAPP: ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2021-02-21 20:54:45.837 18086-18086/com.example.myfirstapp I/SoapAPP: │ Thread: main
2021-02-21 20:54:45.837 18086-18086/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 20:54:45.837 18086-18086/com.example.myfirstapp I/SoapAPP: │ Fragment.performResume  (Fragment.java:2747)
2021-02-21 20:54:45.837 18086-18086/com.example.myfirstapp I/SoapAPP: │    FirstFragment.onResume  (FirstFragment.java:83)
2021-02-21 20:54:45.837 18086-18086/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 20:54:45.837 18086-18086/com.example.myfirstapp I/SoapAPP: │ ~~~~~~~~~~Fragment onResume
2021-02-21 20:54:45.837 18086-18086/com.example.myfirstapp I/SoapAPP: └────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2021-02-21 20:54:54.127 18086-18086/com.example.myfirstapp I/SoapAPP: ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2021-02-21 20:54:54.127 18086-18086/com.example.myfirstapp I/SoapAPP: │ Thread: main
2021-02-21 20:54:54.127 18086-18086/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 20:54:54.127 18086-18086/com.example.myfirstapp I/SoapAPP: │ Fragment.performStop  (Fragment.java:2894)
2021-02-21 20:54:54.127 18086-18086/com.example.myfirstapp I/SoapAPP: │    FirstFragment.onStop  (FirstFragment.java:89)
2021-02-21 20:54:54.127 18086-18086/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 20:54:54.127 18086-18086/com.example.myfirstapp I/SoapAPP: │ ~~~~~~~~~~Fragment onStop
2021-02-21 20:54:54.127 18086-18086/com.example.myfirstapp I/SoapAPP: └────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2021-02-21 20:54:54.127 18086-18086/com.example.myfirstapp I/SoapAPP: ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2021-02-21 20:54:54.128 18086-18086/com.example.myfirstapp I/SoapAPP: │ Thread: main
2021-02-21 20:54:54.128 18086-18086/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 20:54:54.128 18086-18086/com.example.myfirstapp I/SoapAPP: │ Instrumentation.callActivityOnStop  (Instrumentation.java:1476)
2021-02-21 20:54:54.128 18086-18086/com.example.myfirstapp I/SoapAPP: │    MainActivity.onStop  (MainActivity.java:48)
2021-02-21 20:54:54.128 18086-18086/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 20:54:54.128 18086-18086/com.example.myfirstapp I/SoapAPP: │ ~~~~~~~~~~Activity Stop
2021-02-21 20:54:54.128 18086-18086/com.example.myfirstapp I/SoapAPP: └────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2021-02-21 20:54:54.130 18086-18086/com.example.myfirstapp I/SoapAPP: ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2021-02-21 20:54:54.130 18086-18086/com.example.myfirstapp I/SoapAPP: │ Thread: main
2021-02-21 20:54:54.131 18086-18086/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 20:54:54.131 18086-18086/com.example.myfirstapp I/SoapAPP: │ Fragment.performDestroy  (Fragment.java:2927)
2021-02-21 20:54:54.131 18086-18086/com.example.myfirstapp I/SoapAPP: │    FirstFragment.onDestroy  (FirstFragment.java:95)
2021-02-21 20:54:54.131 18086-18086/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 20:54:54.131 18086-18086/com.example.myfirstapp I/SoapAPP: │ ~~~~~~~~~~Fragment onDestroy
2021-02-21 20:54:54.131 18086-18086/com.example.myfirstapp I/SoapAPP: └────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2021-02-21 20:54:54.131 18086-18086/com.example.myfirstapp I/SoapAPP: ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2021-02-21 20:54:54.131 18086-18086/com.example.myfirstapp I/SoapAPP: │ Thread: main
2021-02-21 20:54:54.131 18086-18086/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 20:54:54.131 18086-18086/com.example.myfirstapp I/SoapAPP: │ Activity.performDestroy  (Activity.java:8245)
2021-02-21 20:54:54.131 18086-18086/com.example.myfirstapp I/SoapAPP: │    MainActivity.onDestroy  (MainActivity.java:78)
2021-02-21 20:54:54.131 18086-18086/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 20:54:54.131 18086-18086/com.example.myfirstapp I/SoapAPP: │ Activity Destroy
2021-02-21 20:54:54.131 18086-18086/com.example.myfirstapp I/SoapAPP: └────────────────────────────────────────────────────────────────────────────────────────────────────────────────

6 系统进程被手动清楚
debug上显示进程终止
自定义日志后面就没有了。。。。。

小小总结:

  1. 界面隐藏一定会触发 Activity 和 Fragment 的Stop,不管是Home还是锁屏
  2. 目前实验只有返回键和翻转屏幕这样切换配置,才会引起Activity 和 Fragment的 Destroy
  3. Application的回调事件果然是最高阶的存在,相关事件会最先调用
  4. Activity 和 Fragment的一系列的回调顺序有点意思,不知道先后有没有必然性,目前我还下不了定论
  5. onSaveInstanceState 只要Stop(除了正常的结束finish)就会被调用,如果没有被Destroy,其实序列号暂存的东西并没有被用到。我这里理解是系统比较有“危机”意识,只要被Stop要随时做好Destroy的准备,一种揣测而已
  6. APP被手工干掉并没有引起Application里面onTerminate的回调,有点小失落。这点和windows不同,Application里面有个Exit事件是会被触发的。

这篇博客的最后一部分就是重点讲下onSaveInstanceState
本来这个概念也就这么过去了,缘于一次预期的翻车

图片
我把Count加到7,就是TextView的Text设到7
然后翻转屏幕
图片
翻车,Text回到解放前了,难道是没有onSaveInstanceState?
翻了日志onSaveInstanceState是执行过了
加了日志

@Override
   public void onCreate(@Nullable Bundle savedInstanceState) {
       Logger.i("~~~~~~~~~~Fragment onCreate Bundle null:" + (savedInstanceState == null ) );
       super.onCreate(savedInstanceState);
   }

验证savedInstanceState是不是有值,验证下来也是有的
后面再加一个EditText控件上去,再加点字上去
图片
翻回来
图片
EditText还是保存了,onSaveInstanceState还区别对待啊

好吧自己动手丰衣足食
在FirstFragment加上下面的代码

@Override
    public void onSaveInstanceState(@NonNull Bundle outState) {
        super.onSaveInstanceState(outState);
        Logger.i("~~~~~~~~~~Fragment onSaveInstanceState");
        String countString = showCountTextView.getText().toString();
        Logger.i("Save Count: %s", countString );
        outState.putString("MyCount", countString);
    }

    @Override
    public void onViewStateRestored(@Nullable Bundle savedInstanceState) {
        super.onViewStateRestored(savedInstanceState);
        if( savedInstanceState != null  ) {
            Logger.i("Fragment onViewStateRestored");
            String countString = savedInstanceState.getString("MyCount");
            Logger.i("Load Count: %s", countString);
            showCountTextView.setText(countString);
        }
    }

图片

2021-02-21 22:01:37.321 19195-19195/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 22:01:37.321 19195-19195/com.example.myfirstapp I/SoapAPP: │ Fragment.performSaveInstanceState  (Fragment.java:2863)
2021-02-21 22:01:37.321 19195-19195/com.example.myfirstapp I/SoapAPP: │    FirstFragment.onSaveInstanceState  (FirstFragment.java:103)
2021-02-21 22:01:37.321 19195-19195/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 22:01:37.321 19195-19195/com.example.myfirstapp I/SoapAPP: │ Save Count: 6
2021-02-21 22:01:37.321 19195-19195/com.example.myfirstapp I/SoapAPP: └────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2021-02-21 22:01:37.403 19195-19195/com.example.myfirstapp I/SoapAPP: ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2021-02-21 22:01:37.403 19195-19195/com.example.myfirstapp I/SoapAPP: │ Thread: main
2021-02-21 22:01:37.403 19195-19195/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 22:01:37.403 19195-19195/com.example.myfirstapp I/SoapAPP: │ Fragment.restoreViewState  (Fragment.java:577)
2021-02-21 22:01:37.403 19195-19195/com.example.myfirstapp I/SoapAPP: │    FirstFragment.onViewStateRestored  (FirstFragment.java:111)
2021-02-21 22:01:37.404 19195-19195/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 22:01:37.404 19195-19195/com.example.myfirstapp I/SoapAPP: │ Fragment onViewStateRestored
2021-02-21 22:01:37.404 19195-19195/com.example.myfirstapp I/SoapAPP: └────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2021-02-21 22:01:37.404 19195-19195/com.example.myfirstapp I/SoapAPP: ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2021-02-21 22:01:37.404 19195-19195/com.example.myfirstapp I/SoapAPP: │ Thread: main
2021-02-21 22:01:37.404 19195-19195/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 22:01:37.404 19195-19195/com.example.myfirstapp I/SoapAPP: │ Fragment.restoreViewState  (Fragment.java:577)
2021-02-21 22:01:37.404 19195-19195/com.example.myfirstapp I/SoapAPP: │    FirstFragment.onViewStateRestored  (FirstFragment.java:113)
2021-02-21 22:01:37.404 19195-19195/com.example.myfirstapp I/SoapAPP: ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
2021-02-21 22:01:37.404 19195-19195/com.example.myfirstapp I/SoapAPP: │ Load Count: 6
2021-02-21 22:01:37.404 19195-19195/com.example.myfirstapp I/SoapAPP: └────────────────────────────────────────────────────────────────────────────────────────────────────────────────

小小总结
onSaveInstanceState就是执行一次对需要保存对象的序列化操作,
加载的时候进行反序列化操作,正好是一次正反操作。
序列化历史悠久,最高还是在asp.net里面有这个概念。ViewState的客户端和服务器端的序列化和反序列化,这次用到了安卓这个概念。以前在asp.net页面上会偷偷放一个加密过的序列化的一堆字符串,页面控件越多,这个对象越大。
序列化反序列化都是要开销的。这里建议Bundle要尽量的小。如果有大量数据还是希望另外处理的

最后的最后
MyFirstAPPGithub的地址

@soapgu soapgu added Demo Demo 安卓 安卓 labels Feb 23, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Demo Demo 安卓 安卓
Projects
None yet
Development

No branches or pull requests

1 participant