Вопрос

У меня есть приложение без запуска, которое работает должным образом от 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>

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

Я был бы очень благодарен за помощь!

Это было полезно?

Решение

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

Заявление в Stopped State не начнет от всех вещательных намерений. Отправитель намерения вещания должен указать Intent.flag_include_stopped_packages Флаг, если он хочет запустить также остановленные приложения.

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

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

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

Другие советы

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top