我应该如何解释 Android Developers ViewModel 生命周期图?

How should I interpret the Android Developers ViewModel lifecycle diagram?

下图出现在Android Jetpack ViewModel Overview

为什么中间一列上面的 onDestroy 图形有一个尖头而不终止 ViewModel Scope 而另一个 onDestroy 图形有一个方形末端并终止 ViewModel Scope?

我能够与图表的创建者 Jose Alcérreca 取得联系,他告诉我“第二个 onDestroy 没有箭头是因为它是 activity 的生命周期(由 finish() 而非娱乐触发)。

我还被指向了 source code for ComponentActivity,它显示了 ON_DESTROY 的观察者:

    getLifecycle().addObserver(new LifecycleEventObserver() {
        @Override
        public void onStateChanged(@NonNull LifecycleOwner source,
                @NonNull Lifecycle.Event event) {
            if (event == Lifecycle.Event.ON_DESTROY) {
                // Clear out the available context
                mContextAwareHelper.clearAvailableContext();
                // And clear the ViewModelStore
                if (!isChangingConfigurations()) {   // ***
                    getViewModelStore().clear();     // ***
                }
            }
        }
    });

如带星号的行所示,仅当对 onDestroy() 的调用 不是 时,才会为 ViewModelStore 调用 clear() 方法更改配置。