Why are there 2 different ComponentActivity classes?

woo*_*etm 1 android android-ktx androidx

I'm trying to handle back button presses in my fragments by registering an OnBackPressedCallback via addOnBackPressedCallback to receive onBackPressed() callbacks without needing to override the method in your activity (described Nov 5, 2018 release notes for androidx.activity)

If you look at the AppCompatActivity Docs, it claims AppCompatActivity extends from androidx.activity.ComponentActivity.

The problem I'm running into is, in my codebase, AppCompatActivity extends from androidx.core.app.ComponentActivity (doesn't have addOnBackPressedCallback()) instead of androidx.activity.ComponentActivity (has addOnBackPressedCallback()).

My Dependency Versions

implementation "androidx.core:core-ktx:1.0.1"
implementation "androidx.appcompat:appcompat:1.0.2"
implementation "androidx.activity:activity-ktx:1.0.0-alpha04"
Run Code Online (Sandbox Code Playgroud)

Can anybody else reproduce this issue? Am I doing something wrong?

ian*_*ake 7

androidx.core.app.ComponentActivity是一个隐藏类,在androidx.activity.ComponentActivity被创建为AndroidX Activity 1.0和Fragment 1.1.0的一部分之前使用过

您需要切换到androidx.appcompat:appcompat:1.1.0-alpha02拉入片段1.1.0,以对其进行更改FragmentActivity(并因此进行更改AppCompatActivity)以进行扩展androidx.activity.ComponentActivity