Выбор конкретной вкладки в TabActivity из PendingIntent, отправленного из уведомления - PullRequest
3 голосов
/ 25 февраля 2010

У меня есть TabActivity с 4 вкладками. У меня есть служба, которая работает - эта служба работает даже после того, как моя TabActivity была уничтожена.

Когда Служба получает событие, я создаю уведомление. В это время TabActivity может быть уничтожена или просто запущена в фоновом режиме.

Как я могу создать Notification / PendingIntent, который будет либо запускать TabActivity, если он еще не запущен, либо выводить его на передний план, если он уже есть, и фокусировать конкретную вкладку на основе события?

Я думал о программной регистрации приемника вещания из TabActivity, и с этим я смогу сфокусировать вкладку, но как бы я сделал TabActivity активной деятельностью?

Ответы [ 2 ]

2 голосов
/ 25 февраля 2010

Я надеюсь, что вы уже проверили документы "Как создавать уведомления" и "Как запустить активность из уведомлений" - если нет, просто проверьте это ) Что касается активации определенной вкладки из Уведомления, я советую вам использовать «дополнительные» в вашем PendingIntent. просто поместите номер, например, конкретной вкладки в дополнительные функции в намерении, а когда будет вызываться onCreate () в Activity, просто извлеките его из Intent (в Activity вызов getIntent ()) и просто setCurrentTab (number); во вкладке Хост.

Извините за мой английский) надеюсь, это поможет.

1 голос
/ 25 февраля 2010

Я думаю, что нашел ответ в документации

Это вызывается для действий, которые устанавливают для launchMode значение singleTop в своем пакете или если клиент использовал флаг FLAG_ACTIVITY_SINGLE_TOP при вызове startActivity(Intent). В любом случае, когда действие перезапускается в верхней части стека действий вместо нового экземпляра запускаемого действия, на существующем экземпляре будет вызываться onNewIntent() с намерением, которое использовалось для перезапуска. это "

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...