Виджет, запускающий сервис, также запускает основную деятельность - PullRequest
2 голосов
/ 04 мая 2010

У меня есть виджет, который должен запускать и останавливать службу (запускать, когда он не работает, останавливать, когда он работает). Это работает нормально, однако, каждый раз, когда запускается служба, также запускается основная деятельность моего приложения, чего я не хочу. Если я уберу MAIN-intent-filter ( <action android:name="android.intent.action.MAIN" /><br> <category android:name="android.intent.category.LAUNCHER" />) из манифеста приложения, оно работает так, как я хочу (без запуска основной активности, только службы), но тогда у меня, очевидно, больше нет основной активности ...

Вот так я запускаю службу (я предполагаю, что это нормальный способ, и я не вижу никакой ссылки на то, что может привести к срабатыванию ОСНОВНОГО намерения):

Intent svc = new Intent(this, OnOffService.class);
startService(svc);

Спасибо
Ник

Ответы [ 3 ]

4 голосов
/ 27 декабря 2010

Ваше решение не является хорошим, например, onPause () происходит, когда пользователь меняет ориентацию (поворачивает сотовый телефон), поэтому ваше приложение просто исчезнет, ​​когда это произойдет.

Я спросил и нашел решение: Почему запуск действия из виджета также приводит к запуску моей основной деятельности?

0 голосов
/ 04 августа 2013

Добавьте finish() к действию после запуска службы.

0 голосов
/ 06 мая 2010

Я теперь «решил» это, добавив finish(); к моей основной деятельности onPause().Не очень хорошее решение, но основное занятие не тяжелое, поэтому его перезагрузка (а не возврат из памяти) не должна приносить слишком много вредаВсе еще странно, и я хотел бы знать, что я делаю неправильно:)!

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