# Что такое режим разработчика Do not keep activities?

Режим разработчика **«Do not keep activities»** в Android — это системная опция, которая заставляет операционную систему **немедленно уничтожать каждую Activity, как только она уходит в фон** (т.е. после `onStop()`).

***

#### Основная цель

* Тестирование **устойчивости приложения к пересозданию Activity**.
* Проверка правильного сохранения и восстановления состояния (`savedInstanceState`, ViewModel, локальные данные).
* Выявление ошибок, которые обычно не проявляются при нормальном поведении Android (например, утечки памяти, NullPointerException при восстановлении UI).

***

#### Как работает

1. Пользователь открывает Activity A → Activity B.
2. Activity A уходит в фон → сразу уничтожается системой (`onDestroy()` вызывается).
3. При возврате к Activity A → она **пересоздаётся с нуля**, вызывая `onCreate()` с возможным `savedInstanceState`.

То есть ваше приложение **должно корректно сохранять состояние и восстанавливать его**, иначе пользователь потеряет данные или столкнётся с крэшем.

***

#### Что проверять при включенном режиме

* **Сохранение состояния UI:** текст в полях, scroll position, выбранные элементы.
* **ViewModel и LiveData:** они остаются живыми только для текущего процесса; проверять корректность восстановления.
* **Navigation / back stack:** переходы между экранами не должны ломаться.
* **Асинхронные задачи:** `AsyncTask`, coroutines, network-запросы — убедиться, что они корректно продолжаются или пересоздаются.
* **Обработка `savedInstanceState`:** все важные данные должны быть сохранены.

***

#### Применение в QA

* Активируется в **Settings → Developer options → Do not keep activities**.
* Используется для **тестов регрессии и стресс-тестирования UI**, особенно перед релизом.
* В сочетании с другими инструментами (например, «Limit background processes») помогает выявить ошибки, связанные с памятью, lifecycle и неправильной логикой восстановления данных.

***

Иными словами, это режим, который имитирует **сильное давление системы на память**, заставляя приложение **всегда пересоздавать экран**, что выявляет недоработки в управлении состоянием и сохранении данных.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://kaze.gitbook.io/qa-theory/mobile/chto-takoe-rezhim-razrabotchika-do-not-keep-activities.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
