2015-08-20 3 views
0

У меня есть FooListActivity (один экземпляр, показывающий список всех foos) и FooActivity (нуль или один экземпляр для foo).Android - Как ограничить действия экземпляров одним элементом списка?

FooActivities можно запустить из FooListActivity, но также и из долговременного сервиса без вмешательства пользователя.

Как я могу убедиться, что, по крайней мере, существует одна FooActivity на foo?

i.e Если я попытаюсь запустить FooActivity для foo, у которого уже есть FooActivity, он должен привести существующий FooActivity к фронту, а не создавать ненужный экземпляр.

ответ

1

Если я вас правильно понял вы не хотите, только один экземпляр вашей деятельности (которые вы можете контролировать с android:launchMode="singleInstance"), но вы хотите один экземпляр каждого отображается содержание? Если это так, вам придется следить за этим самим.

Кроме того, я не уверен, что это хорошая идея. Хотя я могу представить некоторые шаблоны использования для этого на планшете (но затем с помощью фрагментов, а не с действиями), тогда пользователю телефона нужно вернуться в список, чтобы увидеть другие данные в любом случае (и , если настройка FooActivity для отображения данных тяжелая, то вы должны, возможно, подумать о некотором кэшировании вместо этого?

+0

Да, нуль или один FooActivities per foo. – fadedbee

+0

Я думаю, что это хорошая идея - на моем Телефон Android Я могу открыть один и тот же контакт более одного раза, и я нахожу его раздражающим при использовании «назад». ContactA --back -> CallActivity --back -> ContactA (снова!) --back -> ListOfContacts – fadedbee

+0

, но вы ** действительно ** нуждаетесь в этом «один экземпляр на foo» или на самом деле вы просто не хотите сокращать «задний» путь? Похоже, вы хотите, чтобы последний поэтому, возможно, просто установите режим запуска FooActivity на «singleInstance» и все. Тогда у вас всегда будет только один шаг назад к списку контактов, потому что в любом случае больше не будет деталей более старых контактов. Только последний –

0

пожалуйста, установите для FooActivity флаг:

android:launchMode="singleInstance" 
+1

ОП запрашивает одну активность за * foo *, а не одну активность для всех. – natario

Смежные вопросы