Sobes.tech
Intern

Jaką masz wiedzę i doświadczenie z Core Android?

sobes.tech AI

Odpowiedź od AI

Wiedza i doświadczenie w zakresie Core Android obejmują zrozumienie podstawowych komponentów systemu operacyjnego i ich interakcji z aplikacjami.

Moje doświadczenie obejmuje:

  • Cykl życia Activity i Fragment: dogłębne zrozumienie metod cyklu życia (onCreate, onStart, onResume, onPause, onStop, onDestroy) oraz zarządzanie stanami podczas obracania ekranu, przełączania między aplikacjami i zamykania aktywności.
  • Intents i IPC: użycie jawnych i niejawnych intentów do uruchamiania komponentów (Activity, Service, BroadcastReceiver), przesyłania danych i komunikacji międzyprocesowej (IPC).
  • Services: tworzenie i zarządzanie zadaniami w tle za pomocą Service, IntentService (przestarzałe, ale zrozumiane) i WorkManager dla trwałych operacji w tle.
  • Broadcast Receivers: rejestracja i obsługa komunikatów broadcast systemowych i niestandardowych.
  • Content Providers: interakcja z bazami danych systemowymi i użytkownika, dostęp do danych współdzielonych (np. kontakty, media).
  • Wątki i współbieżność: praca z wątkami, AsyncTask (przestarzałe), Handler, Looper i nowoczesnymi narzędziami takimi jak Coroutines do zarządzania operacjami asynchronicznymi.

Przykład pracy z cyklem życia Activity:

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

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_my)
        // Inicjalizacja UI, przywracanie stanu z savedInstanceState
    }

    override fun onStart() {
        super.onStart()
        // Activity staje się widoczna
    }

    override fun onResume() {
        super.onResume()
        // Activity przechodzi na pierwszy plan, możliwa interakcja z użytkownikiem
    }

    override fun onPause() {
        super.onPause()
        // Activity przechodzi w tło, ale nadal widoczna (np. dialog na wierzchu)
    }

    override fun onStop() {
        super.onStop()
        // Activity nie jest już widoczna
    }

    override fun onDestroy() {
        super.onDestroy()
        // Activity jest niszczona
    }

    override fun onSaveInstanceState(outState: Bundle) {
        super.onSaveInstanceState(outState)
        // Zapisanie stanu przed zniszczeniem Activity (np. podczas rotacji)
        outState.putString("my_data", "some_value")
    }

    override fun onRestoreInstanceState(savedInstanceState: Bundle) {
        super.onRestoreInstanceState(savedInstanceState)
        // Przywracanie stanu
        val data = savedInstanceState.getString("my_data")
        // Użycie przywróconych danych
    }
}

Zrozumienie tych podstaw jest kluczowe dla tworzenia stabilnych i wydajnych aplikacji Android.