Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

778
Views
Lifecycle OnLifecycleEvent está en desuso

Después de actualizar la biblioteca del lifecycle de vida a 2.4.0, Android Studio marcó todos los eventos del ciclo de vida como obsoletos.

 @OnLifecycleEvent(Lifecycle.Event.ON_CREATE) fun create() { tts = TextToSpeech(context, this) } @OnLifecycleEvent(Lifecycle.Event.ON_PAUSE) fun stopTTS() { tts?.stop() }

¿Hay algún reemplazo equivalente como DefaultLifecycleObserver ?

over 4 years ago · Santiago Trujillo
4 answers
Answer question

0

Tu clase debe implementar DefaultLifecycleObserver así

 public class MyFavoriteClass implements DefaultLifecycleObserver

Luego implemente los métodos necesarios (Android Studio: ALT + i)

 @Override public void onResume(@NonNull LifecycleOwner owner) { methodRunsAtOnResume(); } @Override public void onDestroy(@NonNull LifecycleOwner owner) { myFavoriteOnDestroyMethod(); }

En su actividad o fragmento agregue esto a onCreate()

 @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); MyOtherClass class = new MyOtherClass(); getLifecycle().addObserver(class); }

Para implementarlo de manera más correcta, cree su propia clase de observador, pásele el objeto que desea observar. Un buen artículo al respecto es https://medium.com/@MinaSamy/android-architecture-components-lifecycle-433ace1ec05d

over 4 years ago · Santiago Trujillo Report

0

Para realizar un seguimiento del ciclo de vida de la Activity actual, puede utilizar la clase LifecycleEventObserver . Primero, crea una devolución de llamada,

 private val lifecycleEventObserver = LifecycleEventObserver { source, event -> if (event == Lifecycle.Event.ON_RESUME ) { Log.e( "APP" , "resumed" ) } else if ( event == Lifecycle.Event.ON_PAUSE ) { Log.e( "APP" , "paused" ) } }

Adjunte la devolución de llamada en el método onCreate de la Activity usando el método lifecycle.add( Observer ) ,

 lifecycle.addObserver( lifecycleEventObserver )
over 4 years ago · Santiago Trujillo Report

0

Puede crear esta función para usar DefaultLifecycleObserver y llamarla en la devolución de llamada del ciclo de vida onCreate () de una Activity

 private fun addDefaultLifeCycleObserver() { val defaultLifecycleObserver = object : DefaultLifecycleObserver { override fun onCreate(owner: LifecycleOwner) { super.onCreate(owner) Log.d("Main", "DefaultLifecycleObserver - onCreate") } } lifecycle.addObserver(defaultLifecycleObserver) }
over 4 years ago · Santiago Trujillo Report

0

Está en desuso porque ahora esperan que use Java 8 e implemente la interfaz DefaultLifecycleObserver. Dado que Java 8 permite que las interfaces tengan implementaciones predeterminadas, definieron DefaultLifecycleObserver con implementaciones vacías de todos los métodos, por lo que solo necesita anular los que usa.

La forma antigua de marcar funciones con @OnLifecycleEvent era una muleta para proyectos anteriores a Java 8. Esta era la única forma de permitir que una clase eligiera selectivamente qué eventos del ciclo de vida le importaban. La alternativa habría sido obligar a esas clases a anular todos los métodos de la interfaz del ciclo de vida, incluso dejándolos vacíos.

En su caso, cambie su clase para implementar DefaultLifecycleObserver y cambie sus funciones para anular las funciones aplicables de DefaultLifecycleObserver. Si su proyecto aún no usa Java 8, debe actualizar sus archivos de compilación de Gradle. Póngalos en el bloque android en el build.gradle de su módulo:

 compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } kotlinOptions { jvmTarget = '1.8' }
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!