Migrar la función heredada OnBackPressed – Android 13 | por DINESH | noviembre 2022

Al apuntar a Android 13, OnbackPressed La función de anulación está obsoleta😢. Por lo general, interceptamos Backpress y agregamos animaciones. Como todos sabemos, esta función onBackPressed se llama cada vez que se hace clic en el botón Atrás (hardware) o se presiona hacia atrás desde el gesto de navegación. Pero ahora es el momento del cambio/reubicación… Hmm., lo que sea «¡¡El cambio es la única constante…!!»En Android 13 tenemos una nueva función de vista previa llamada «Gesto mirando hacia adelante.” Actualmente no está disponible para usuarios finales. Debido a esta función, descartaron la función onBackPressed en Android 13. Así que vamos a migrar y diseñar nuestras aplicaciones para prepararlas para el gesto de retroceso predictivo de Android 13.Nota: Como mencionó el equipo de Android en la nota, al apuntar a Android 13, el gesto de retroceso predictivo solo es visible para los desarrolladores con fines de prueba. Veamos nuestra antigua forma de usarlo, anule la diversión onBackPressed() { // muestra el cuadro de diálogo y luego cierra la aplicación. showDialog()}Diversión privada showDialog(){MaterialAlertDialogBuilder(esto).apply {setTitle(«¿está seguro?»)setMessage(«¿quiere cerrar la aplicación?»)setPositiveButton(«Sí») { _, _ -> hecho () }setNegativeButton(«No», null)show()}}El código anterior muestra el surgir cuando se activa Backpress. Cuando el usuario hace clic si de hecho, la aplicación se cerrará. Cuando el usuario hace clic no, la aplicación no se cerrará. Un ejemplo bastante simple, ¿verdad? Bueno, para migrar el código anterior, debemos seguir 2 sencillos pasosPaso 1 :Cree una devolución de llamada onBackPressed. OnBackPressedCallback (habilitado) // habilitado es verdadero o falso En esta devolución de llamada, activado es un parámetro predeterminado que debemos pasar a cualquier condición si es necesario. Si quieres puedes habilitarlo por defecto pasándolo CIERTO.El siguiente código es una réplica completa de nuestro antiguo método onbackPressed() function.private val onBackPressedCallback = object : OnBackPressedCallback(true) {override fun handleOnBackPressed() {//Muestra el diálogo y luego cierra la aplicación…showDialog()}}PASO 2 :Añade el llamar de vuelta en el cual onBackPressedDispatcher(). Eso debería estar ahí enCrear función y es una buena práctica utilizar la base setContentView o después de enlazar el diseño. diversión anulando onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState)setContentView(R.layout.activity_main)// agregando onbackpressed callback listener.onBackPressedDispatcher.addCallback(this,onBackPressedCallback)}Final actividad principal código: class MainActivity: AppCompatActivity() {private val onBackPressedCallback = object: OnBackPressedCallback (true) {anular fun handleOnBackPressed() {//mostrando el diálogo y luego cerrar la aplicación..showDialog()}}override fun onCreate(savedInstanceState: Bundle? ) {super.onCreate(savedInstanceState)setContentView(R.layout.activity_main)// Agregar onbackpressed callback listener.onBackPressedDispatcher.addCallback(this,onBackPressedCallback)}Private Fun showDialog(){MaterialAlertDialogBuilder(this).apply {setTitle(«eres tú ¿seguro?»)setMessage(«¿Desea cerrar la aplicación?»)setPositiveButton(«Sí») { _, _ -> finalizar() }setNegativeButton(«No», null)show()}}}Nota : si asumir onBackPressedDispatcher o OnBackPressedCallback no encontrado para ustedes, por favor verifiquen su actividad versión ktx debería ser al menos o más que 1.6.1.Si crea un nuevo proyecto en Android Studio, la sugerencia anterior no es obligatoria. ahora hemos reemplazado los obsoletos onBackPressed Función. 🙂 Si aprendiste algo nuevo, no olvides seguirme, dar me gusta y apoyarme 👍😊

Deja una respuesta

Tu dirección de correo electrónico no será publicada.