A estrutura do ciclo de vida do Android usa a introdução da mensagem:
Endereço de apresentação do site oficial:
https://developer.android.com/jetpack/androidx/releases/lifecycle
A descrição principal do endereço é a seguinte:
1. Altere a descrição das informações da versão do componente.
2. A versão de lançamento modifica essas coisas. Incluindo bugs e outros conteúdos relacionados.
3. Para usar o gradle, você precisa importar os pacotes relacionados.
O seguinte é a versão estável da seguinte forma
def lifecycle_version = "2.1.0"
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
// ViewModel and LiveData
implementation "androidx.lifecycle:lifecycle-extensions:$lifecycle_version"
// alternatively - just ViewModel
implementation "androidx.lifecycle:lifecycle-viewmodel:$lifecycle_version"
//For Kotlin use lifecycle-viewmodel-ktx
// alternatively - just LiveData
implementation "androidx.lifecycle:lifecycle-livedata:$lifecycle_version"
//alternatively - Lifecycles only (no ViewModel or LiveData). Some UI
//AndroidX libraries use this lightweight import for Lifecycle
implementation "androidx.lifecycle:lifecycle-runtime:$lifecycle_version"
// For Kotlin use kapt instead of annotationProcessor
annotationProcessor "androidx.lifecycle:lifecycle-compiler:$lifecycle_version"
// alternately - if using Java8, use the following instead of lifecycle-compiler
implementation "androidx.lifecycle:lifecycle-common-java8:$lifecycle_version"
// optional - ReactiveStreams support for LiveData
implementation "androidx.lifecycle:lifecycle-reactivestreams:$lifecycle_version" // For Kotlin use lifecycle-reactivestreams-ktx
// optional - Test helpers for LiveData
testImplementation "androidx.arch.core:core-testing:$lifecycle_version"
4. A versão mínima suportada do SDK desta versão é 24. . . Um pequeno poço.
//implementation "androidx.lifecycle:lifecycle-common-java8:$lifecycle_version" Esta versão suporta pelo menos a versão 24 do SDK. . . Um pequeno poço.
Portanto, não há problema em removê-lo.
A mensagem de erro é a seguinte:
Default interface methods are only supported starting with Android N (--min-api 24):
void androidx.lifecycle.DefaultLifecycleObserver.onCreate(androidx.lifecycle.LifecycleOwner)
5. Mude para 24. Após a compilação, descompile e obtenha as seguintes informações para obter o arquivo AndroidManifest.xml da seguinte forma:
AndroidManifest.xml+ buffers
1 <?xml version="1.0" encoding="utf-8" standalone="no"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" android:compile
2 <application android:allowBackup="true" android:appComponentFactory="androidx.core.app.CoreComponentFactory" android:debuggable="true"
3 <activity android:name="com.octopus.myapplication.MainActivity">
4 <intent-filter>
5 <action android:name="android.intent.action.MAIN"/>
6 <category android:name="android.intent.category.LAUNCHER"/>
7 </intent-filter>
8 </activity>
9 <provider android:authorities="com.octopus.myapplication.lifecycle-process"
10 android:exported="false" android:multiprocess="true"
11 android:name="androidx.lifecycle.ProcessLifecycleOwnerInitializer"/>
12 </application>
13 </manifest>
~
~
6. Que podemos ver. A ferramenta annotationProcessor "androidx.lifecycle:lifecycle-compiler:$lifecycle_version" irá
Ajude-nos a colocar o seguinte código no Android AndroidManifest.xml.
<provider android:authorities="com.octopus.myapplication.lifecycle-process"
android:exported="false" android:multiprocess="true"
android:name="androidx.lifecycle.ProcessLifecycleOwnerInitializer"/>
7. androidx.lifecycle.ProcessLifecycleOwnerInitializer é um ContentProvider.
Quando o aplicativo for iniciado, ele será inicializado. O método de ciclo de vida onCreate() do ContentProvider será chamado.
8. Abaixo vamos analisar o código Lifecycle em detalhes