Можно ли повысить эффективность, объявив соответствующих участников «статичными» в Android Activity - PullRequest
30 голосов
/ 03 августа 2010

Если на практике действие является единичным, я думаю, что смогу добиться некоторой эффективности, объявив соответствующих участников «статическими» с нулевым риском.Да

Ответы [ 5 ]

18 голосов
/ 03 августа 2010

Документация для Android гласит, что -

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

Это означает, что вы можете использовать статические элементы .

Кроме того, standard или singleTop должны иметь статичные поточно-ориентированные элементытолько .Предположим, текущим стеком активности является ABCD.Если прибывающее намерение предназначено для действия типа B, которое находится в режиме «стандарт» или «одноразовый».Новый экземпляр B будет запущен как (так как B находится не на вершине стека), поэтому результирующий стек будет ABCDB.

3 голосов
/ 04 августа 2010

Одна вещь, пожалуйста, НЕ используйте singleTask или singleInstance для этой цели. Флаги запуска активности предназначены для управления поведением стеков активности. Они оказывают заметное влияние на взаимодействие пользователя с вашей деятельностью (делая ее нестандартной). Эти режимы предназначены для использования, когда вы хотите такого рода взаимодействие с пользователем, их НЕ следует использовать для изменения деталей реализации вашего приложения.

1 голос
/ 03 августа 2010

Нет. Один и тот же Activity может быть запущен несколько раз в одном и том же процессе. Например, вы можете попробовать запустить Activity от самого себя, нажимая кнопку.

0 голосов
/ 20 декабря 2011

Смотрите свойство запуска свойства на странице android.developer .

Цитата : " стандарт isрежим по умолчанию и подходит для большинства типов действий. SingleTop также является распространенным и полезным режимом запуска для многих типов действий. Другие режимы - singleTask и singleInstance - не подходят для большинства приложений, поскольку приводят к модели взаимодействия, которая, вероятно, незнакома пользователям и сильно отличается от большинства другихприложения. "

0 голосов
/ 03 августа 2010

Да, Activity может быть «одноэлементной», если вы убедитесь, что экземпляр Activity A не запущен, а другой экземпляр Activity A находится в стеке Activity (экземпляр Activity A может технически запустить другой экземпляр самого себя).

...