Android - приложение [Xoom / Honeycomb] без активности LAUNCHER не работает - PullRequest
6 голосов
/ 08 сентября 2011

У меня есть приложение без активности запуска, которое работает должным образом с Android 1.5 до Android 2.3.4.Запускается моим приемником вещания.Однако на Honeycomb (Motorola Xoom) мой вещательный приемник вообще не работает (он не улавливает никаких намерений).Если я добавлю активность запуска в свой манифест:

<activity android:label="@string/app_name" android:name="com.myapp.MainActivity"> 
<intent-filter> 
<action android:name="android.intent.action.MAIN" /> 
<category android:name="android.intent.category.LAUNCHER" /> </intent-filter> 
</activity>

Тогда мое приложение будет работать правильно (широковещательный приемник перехватывает все необходимые намерения и запускает мои службы).

Буду очень признателен за помощь!

Ответы [ 2 ]

10 голосов
/ 08 сентября 2011

Вы используете Honeycomb 3.1 или выше? Если да, посмотрите здесь . Когда ваше приложение установлено, оно остановлено. Когда приложение запускается впервые, оно выходит из состояния остановки.

Приложение в остановленном состоянии не запустится всеми вещательными намерениями. Отправитель намерения вещания должен указать флаг Intent.FLAG_INCLUDE_STOPPED_PACKAGES , если он также хочет запускать остановленные приложения.

Intent intent = new Intent(MY_INTENT_ACTION);
intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES);
sendBroadcast(intent);

Если вы не можете изменить код, который отправляет намерение, вам лучше всего сохранить активность программы запуска. Каждый раз, когда пользователь запускает ваше приложение после установки, оно выходит из состояния остановки и вы начинаете получать трансляции.

Обратите внимание, что пользователь может перевести ваше приложение обратно в состояние остановки из меню «Управление приложениями» в настройках устройства.

4 голосов
/ 08 сентября 2011

На Android 3.1 и выше, BroadcastReceivers не будет вызываться, пока пользователь не запустит приложение хотя бы один раз с помощью других средств, таких как запуск действия.

Поскольку пользователи, как правило, очень запутаныпо приложениям, у которых нет активности, вы действительно должны были иметь активность в первую очередь, для онлайн-помощи, если ничего больше.С Android 3.1 это еще важнее.

...