Sobes.tech
Intern

¿Cuál es su conocimiento y experiencia en Core Android?

sobes.tech AI

Respuesta de la IA

El conocimiento y la experiencia en Core Android abarcan la comprensión de los componentes básicos del sistema operativo y su interacción con las aplicaciones.

Mi experiencia incluye:

  • Ciclo de vida de Activity y Fragment: Comprensión profunda de los métodos del ciclo de vida (onCreate, onStart, onResume, onPause, onStop, onDestroy) y gestión de estados durante rotaciones de pantalla, cambios entre aplicaciones y cierre de actividades.
  • Intents y IPC: Uso de intents explícitos e implícitos para iniciar componentes (Activity, Service, BroadcastReceiver), transferencia de datos y comunicación entre procesos (IPC).
  • Services: Creación y gestión de tareas en segundo plano con Service, IntentService (obsoleto, pero entendido) y WorkManager para operaciones persistentes en segundo plano.
  • Broadcast Receivers: Registro y manejo de mensajes broadcast del sistema y personalizados.
  • Content Providers: Interacción con bases de datos del sistema y del usuario, acceso a datos compartidos (por ejemplo, contactos, medios).
  • Threads y Concurrencia: Trabajo con hilos, AsyncTask (obsoleto), Handler, Looper y herramientas modernas como Coroutines para gestionar operaciones asíncronas.

Ejemplo de trabajo con el ciclo de vida de una Activity:

// Activity.kt
class MyActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_my)
        // Inicialización de UI, restauración de estado desde savedInstanceState
    }

    override fun onStart() {
        super.onStart()
        // La Activity se vuelve visible
    }

    override fun onResume() {
        super.onResume()
        // La Activity pasa al primer plano, interacción con el usuario posible
    }

    override fun onPause() {
        super.onPause()
        // La Activity pasa a segundo plano, pero aún visible (por ejemplo, un diálogo encima)
    }

    override fun onStop() {
        super.onStop()
        // La Activity ya no es visible
    }

    override fun onDestroy() {
        super.onDestroy()
        // La Activity se destruye
    }

    override fun onSaveInstanceState(outState: Bundle) {
        super.onSaveInstanceState(outState)
        // Guardar estado antes de destruir la Activity (por ejemplo, al rotar)
        outState.putString("my_data", "some_value")
    }

    override fun onRestoreInstanceState(savedInstanceState: Bundle) {
        super.onRestoreInstanceState(savedInstanceState)
        // Restaurar estado
        val data = savedInstanceState.getString("my_data")
        // Uso de los datos restaurados
    }
}

Comprender estos fundamentos es críticamente importante para crear aplicaciones Android estables y eficientes.