🏁Activity launch modes

🔰 Nasıl Yönetilir

AndroidManifest.xml dosyası içerisindeki <activity> alanının değiştirilmesi ile yönetilir

💠 Activity Özellikleri

  • Belirtilen launchModedeğerlerinden biri kullanılır

  • Varsayılan olarak standart değeri seçilir

Launch Mode
Anlamı

standart

Android'in varsayılan modu

singleTop

Activity, stack'te en tepede ise yeni işlerde yeni activity oluşturulmaz

singleTask

Activity için yeni bir işlem tanımlandığında, işlem yapan activity kullanılır, yeni oluşturulmaz

singleInstance

Activity yalnızca bir kez oluşturulur

<activity
   android:name=".SecondActivity"
   android:label="@string/activity2_name"
   android:parentActivityName=".MainActivity"
   android:launchMode="standard">
   <!-- More attributes ... -->
</activity>

🏴 Intent flags

  • Activity attributes gibidir, ama çakışma durumunda bayraklar ele alınır

  • setFlag() ve getFlag() ile kullanılır

Flag
Launch Mode karşılığı
Anlamı

singleTask

İşlem için var olan Activity'i kullanır

singleTop

Activity, stack'te en tepede ise yeni işlerde yeni activity oluşturulmaz

Eğer activity stack'te varsa, onu tepeye alıp, üstündeki her activity'i destroy eder. FLAG_ACTIVITY_NEW_TASK ile kullanılırsa activity işlemlerini ön plana taşır

‍👨‍💼 Yeni Intent Oluşumunu Yönetme

  • Genellikle onResume()'den sonra çalışır

  • getIntent() metodu her zaman, Activity'nin kendi intent'ini döndürdüğünden bu yapı kullanılır

  • setIntent() ile Activity intent'i değiştirilir

@Override 
public void onNewIntent(Intent intent) { 
    super.onNewIntent(intent); 
    // Use the new intent, not the original one
    setIntent(intent); 
}

Last updated

© 2024 ~ Yunus Emre Ak ~ yEmreAk