Исключить широковещательный приемник из списка последних приложений/диспетчера задач

У меня есть наполовину успешное приложение на рынке, которое использует широковещательные приемники для некоторых своих функций. По просьбе многих пользователей я успешно исключил несколько действий из «Списка последних приложений», добавив эту строку в действия в манифесте:

android:excludeFromRecents="true"

Я пытаюсь сделать то же самое с моим широковещательным приемником. Я попытался добавить эту строку в свой приемник и все зависимые действия, но безрезультатно. Что я могу сделать, чтобы «скрыть» широковещательный приемник от пользователя? Это должно работать или есть альтернатива?

Кроме того, как мне остановить отображение приложения в диспетчере задач (список запущенных приложений) при получении трансляции? На моем телефоне довольно много приложений (включая мое приложение), которые отображаются в моем стороннем диспетчере задач, но не отображаются как запущенные приложения в настройках по умолчанию-> приложения-> запущенный список. Может кто-нибудь объяснить, почему это так, и что я могу сделать, чтобы исключить его из списка диспетчера задач (не зная, как каждый отдельный диспетчер задач ищет приложения)?

Спасибо!

ПРИМЕЧАНИЕ. Я использую слово «спрятаться» с опаской. Это в основном для того, чтобы убрать беспорядок в списке последних приложений по запросу пользователей. Никаких злых намерений :D.


person dberm22    schedule 14.05.2013    source источник
comment
Чистый BroadcastReceiver не будет отображаться в списке последних приложений. Как вы реализовали приемник, чтобы получить такой результат? Я имею в виду, что вижу только приложение в списке, а не каждое отдельное действие...   -  person WarrenFaith    schedule 15.05.2013
comment
Просто короткая проверка с моей стороны: если у вас есть несколько точек входа, определенных в вашем манифесте, каждая из них отображается в списке приложений, но опять же: я понятия не имею, как вам удалось получить BroadcastReceiver в списке...   -  person WarrenFaith    schedule 15.05.2013
comment
Я может не понятно описал свою проблему. Хотя вы правы в том, что в списке отображается только приложение (а не каждое отдельное действие), если все действия исключены из списка в манифесте, то приложение не должно отображаться. В моем случае все мои действия исключены, но когда мое приложение получает трансляцию, приложение все еще отображается в списке. Это моя проблема.   -  person dberm22    schedule 15.05.2013
comment
Вы пытались использовать службу, которая обрабатывает трансляцию?   -  person WarrenFaith    schedule 16.05.2013
comment
У меня нет... Я не хочу иметь службу, которая всегда работает в фоновом режиме. Я хотел бы, чтобы приложение было как можно более легким.   -  person dberm22    schedule 16.05.2013
comment
служба не должна всегда работать в фоновом режиме. У вас есть контроль над службой, и вы решаете, когда вы должны убить себя.   -  person WarrenFaith    schedule 16.05.2013
comment
Мне нужно, чтобы приемник всегда был активен, поэтому служба также должна быть   -  person dberm22    schedule 16.05.2013
comment
Вы знаете, что вы можете зарегистрировать в манифесте получателя, который всегда будет реагировать, если что-то сработает в его фильтре намерений? Вы должны проверить возможные варианты использования широковещательного приемника... серьезно   -  person WarrenFaith    schedule 16.05.2013
comment
Я также не имел в виду, я имел в виду, что если я удалю приемник, служба должна будет работать все время. И я знаю, как работают приемники ... Я программирую Android более 2 лет. Мой приемник реагирует каждый раз, когда получено намерение ... Я просто ищу способ, чтобы приложение не отображалось в списке последних приложений, когда это происходит.   -  person dberm22    schedule 16.05.2013
comment
if all activities are excluded from the list in the manifest Тогда ваше приложение не будет работать на 3.1 и выше. Пользователь должен вручную открыть ваше приложение хотя бы один раз, прежде чем оно сможет получать широковещательные рассылки и намерения (источник)   -  person Raghav Sood    schedule 16.05.2013
comment
@RaghavSood Это очень интересно, но, похоже, это не то поведение, которое изображает мое приложение. Получатель всегда работает, когда получено намерение, независимо от того, было ли приложение только что убито. Это работает даже на 4.2. В любом случае, это не моя проблема ... моя проблема связана с исключением приложения из списка последних приложений при получении трансляции, а не с получением указанных трансляций.   -  person dberm22    schedule 16.05.2013
comment
Хорошо, забудьте о службе. Если вы создадите простой широковещательный приемник, определенный в манифесте, он всегда будет реагировать (по крайней мере, когда приложение было запущено один раз). Итак, он что-то получает, что-то делает и готово. Тогда он никогда не должен появляться в списке последних приложений, по крайней мере, на самом деле. Так что ты делаешь в рамках своей трансляции? Это должно быть причиной того, что ваше приложение указано там? Я имею в виду, что в противном случае весь приемник ON_BOOT_COMPLETE был бы в списке сразу после загрузки устройства. Итак: что вы делаете в своем ресивере? Дайте нам код...   -  person WarrenFaith    schedule 16.05.2013
comment
В целях тестирования я все закомментировал и показал только тост. Он все еще появляется.   -  person dberm22    schedule 16.05.2013
comment
Какие фильтры намерений/трансляции вы слушаете?   -  person ozbek    schedule 20.05.2013
comment
просто ACTION_USER_PRESENT   -  person dberm22    schedule 23.05.2013


Ответы (1)


Когда вы получите широковещательную рассылку, начните/запустите новое действие/службу с помощью FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS. Трудно сказать без исходного кода, но вы также можете добавить FLAG_ACTIVITY_NO_HISTORY.

person ozbek    schedule 20.05.2013
comment
Хотя это на самом деле не ответило на вопрос, поскольку вы единственный, кто действительно опубликовал ответ, я награждаю вас наградой. К сожалению для меня, SO не позволяет мне вернуть мою награду, если нет достаточных ответов, поэтому лучше, чтобы вы получили награду, чем она исчезла в эфире. - person dberm22; 23.05.2013
comment
Учитывая, что вы оказали НЕКОТОРУЮ помощь, я бы сказал да. Морально, по крайней мере, - person dberm22; 23.05.2013