Sobes.tech
Intern

Qual é o seu conhecimento e experiência com Core Android?

sobes.tech IA

Resposta da IA

O conhecimento e experiência com Core Android abrangem a compreensão dos componentes básicos do sistema operativo e sua interação com as aplicações.

A minha experiência inclui:

  • Ciclo de vida de Activity e Fragment: Compreensão profunda dos métodos do ciclo de vida (onCreate, onStart, onResume, onPause, onStop, onDestroy) e gestão de estados durante rotações de ecrã, mudanças entre aplicações e encerramento de atividades.
  • Intents e IPC: Uso de intents explícitos e implícitos para iniciar componentes (Activity, Service, BroadcastReceiver), transferência de dados e comunicação entre processos (IPC).
  • Services: Criação e gestão de tarefas em segundo plano com Service, IntentService (obsoleto, mas compreendido) e WorkManager para operações persistentes em background.
  • Broadcast Receivers: Registo e tratamento de mensagens broadcast do sistema e personalizadas.
  • Content Providers: Interação com bases de dados do sistema e do utilizador, acesso a dados partilhados (por exemplo, contactos, media).
  • Threads e Concorrência: Trabalho com threads, AsyncTask (obsoleto), Handler, Looper e ferramentas modernas como Coroutines para gerir operações assíncronas.

Exemplo de trabalho com o ciclo de vida de uma Activity:

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

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_my)
        // Inicialização da UI, restauração do estado a partir de savedInstanceState
    }

    override fun onStart() {
        super.onStart()
        // A Activity torna-se visível
    }

    override fun onResume() {
        super.onResume()
        // A Activity passa para primeiro plano, interação com o utilizador possível
    }

    override fun onPause() {
        super.onPause()
        // A Activity passa para segundo plano, mas ainda visível (por exemplo, um diálogo por cima)
    }

    override fun onStop() {
        super.onStop()
        // A Activity já não é visível
    }

    override fun onDestroy() {
        super.onDestroy()
        // A Activity é destruída
    }

    override fun onSaveInstanceState(outState: Bundle) {
        super.onSaveInstanceState(outState)
        // Guardar estado antes de destruir a Activity (por exemplo, ao rotacionar)
        outState.putString("my_data", "some_value")
    }

    override fun onRestoreInstanceState(savedInstanceState: Bundle) {
        super.onRestoreInstanceState(savedInstanceState)
        // Restaurar estado
        val data = savedInstanceState.getString("my_data")
        // Utilizar dados restaurados
    }
}

Compreender estes fundamentos é fundamental para criar aplicações Android estáveis e eficientes.