Однозадачный режим


Приложение может быть запущено пользователем несколько раз, в результате будет запущено несколько экземпляров одной и той же деятельности в памяти, что приведет к ее перерасходу. Чтобы избежать подобной ситуации, разработчик может контролировать поведение каждой деятельности с помощью файла манифеста. Для каждого элемента <activity>, обладающего intent-фильтрами MAIN и LAUNCHER, добавьте следующий параметр:

android:launchMode="singleInstance"

Должно получиться примерно так:

<activity android:name=".Menu"

       android:launchMode="singleInstance"

       android:label="@string/app_name">

       <intent-filter>

         <action android:name="android.intent.action.MAIN" />

         <category android:name="android.intent.category.LAUNCHER" />

       </intent-filter>

</activity>

В результате будет запущен только один экземпляр деятельности. Но вы можете задать еще более жесткое ограничение. По умолчанию каждая дочерняя деятельность запускается как отдельная задача. Чтобы все деятельности запускались как одна задача, используется следующий режим запуска:

android:launchMode="singleTask"