Как влияет прозрачность Activity на ее жизненный цикл

«Как влияет прозрачность Activity на ее жизненный цикл» — вопрос из категории Android компоненты, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Прозрачность Activity (через android:windowIsTranslucent или android:windowBackground с альфа-каналом) влияет на жизненный цикл:

  1. При прозрачности Activity не вызывает onStop() у нижележащей Activity, так как она остается видимой частично.
  2. Нижележащая Activity продолжает получать onPause(), но не onStop().
  3. Если прозрачная Activity закрывается, нижележащая не получает onRestart(), так как не была остановлена.

Пример в манифесте:

<activity android:name=".TranslucentActivity"
    android:theme="@style/TranslucentTheme"/>

Где стиль:

<style name="TranslucentTheme">
    <item name="android:windowIsTranslucent">true</item>
    <item name="android:windowBackground">@android:color/transparent</item>
</style>

Важно: это может привести к утечкам памяти, если нижележащая Activity держит тяжелые ресурсы.