Android-активность создания вкладок? - PullRequest
1 голос
/ 03 июня 2010

У меня есть приложение Android с основным видом деятельности, который является tabhost. Я добавляю на вкладку несколько вкладок с намерением выполнить несколько действий.

Моя проблема в том, что эти действия не создаются (onCreate не вызывается), пока я не нажму на вкладку. Это проблема, потому что мне нужно зарегистрировать широковещательные приемники: могут быть широковещательные сообщения, которые отправляются до открытия определенной вкладки.

Я пытался обойти это путем:

  • Установка моих приемников как статических и регистрация откуда-то еще. Это невозможно, потому что мне нужно вызывать методы.
  • Вызов в tabHost.setCurrentTabByTag (the_tag) и переключение обратно на мою корневую вкладку. Это работает только иногда, и это очень уродливое решение IMO.
  • Не использовать действия, а просто использовать представления. Также не очень элегантное решение, потому что оно превращает мою деятельность по tabHost в один огромный мастер-класс, выполняющий все виды несвязанных вещей.

Как лучше всего решить эту проблему? Можно ли каким-то образом сделать отправленные широковещательные сообщения «очередью» вместо того, чтобы просто исчезать, когда нет получателей? Могу ли я принудительно создать действия для моей вкладки (это не проблема, мои пользователи почти гарантированно используют каждую вкладку в некоторые моменты)? Другие идеи?

редактирование:

По данным CommonsWare в этом вопросе; Обновление вкладок из активности вкладок в Android TabHost

Может быть, лучше реализовать вкладки в виде представлений, а не действий ... Это несколько меняет мой вопрос:

Как мне разделить разные виды логики в одной и той же деятельности? Не очень жду 30+ методов повышения.

1 Ответ

0 голосов
/ 03 июня 2010

Я бы использовал TabActivity в качестве широковещательного приемника, а не вкладки. Это дало бы вам более чистый код и больший контроль над тем, как вы обрабатываете трансляции

...