BroadcastReceiver не работает на Android 3.0 - PullRequest
0 голосов
/ 15 января 2012

У меня есть плагин, который использует широковещательные намерения для связи между основным приложением и плагинами. При запуске главное приложение отправляет широковещательный умысел

sendBroadcast(new Intent("com.mypackage.myapp.custom.intent.action.ADDON_REQ"));

Каждое приложение-плагин имеет широковещательный приемник, зарегистрированный в файле манифеста.

    <receiver
        android:name="IncomingReceiver"
        android:enabled="true">
        <intent-filter>
            <action android:name="com.mypackage.myapp.custom.intent.action.ADDON_REQ" >
            </action>
        </intent-filter>
    </receiver>

Приложение-плагин не имеет определенных действий. Этот фреймворк отлично работает на всех версиях Android ниже 3.0. Начиная с Honeycomb, приемник трансляции в плагине никогда не вызывается. Я не мог это исправить, пока не добавил основное действие в приложение плагинов. С активностью, определенной в манифесте, существующий широковещательный приемник начал принимать широковещательные сообщения. Какова возможная причина такого поведения? Есть ли способ исправить это без добавления активности?

Спасибо

1 Ответ

1 голос
/ 15 января 2012

Начиная с сотовой сети, вам необходимо указать флаг для запуска принимающего приложения, если оно еще не запущено: Intent.FLAG_INCLUDE_STOPPED_PACKAGES .

Intent intent = new Intent("com.mypackage.myapp.custom.intent.action.ADDON_REQ");
intent.setFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES);
sendBroadcast(intent);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...