Как запустить вещательный приемник? - PullRequest
1 голос
/ 22 июня 2011

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

Ответы [ 2 ]

2 голосов
/ 22 июня 2011
IntentFilter filter = new IntentFilter("com.mydefinepackage.myactivity");
this.registerReceiver(new Receiver(), filter);

Объявите этот закрытый класс и используйте указанный выше код в myactivity Activity.

private class Receiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context arg0, Intent arg1) {
        myOwnMethod();
    }
}

Выполните этот код из любого другого действия.Тогда будет вызван myOwnMethod.

Intent i =new Intent("com.mydefinepackage.myactivity");
sendBroadcast(i);
2 голосов
/ 22 июня 2011

Вы должны использовать

 Intent intent = new Intent( "mypackage.myaction" );
 activity.sendBroadCast( intent );

Где активность - это та, которая запускает ваш BroadcastReceiver и Intent, намерение, которое соответствует фильтру вашего BroadcastReceiver в вашем файле манифеста.

Вы будетесделать что-то похожее на:

<receiver android:name="your broadcast receiver class" android:label="a name">
    <intent-filter>
        <action android:name="mypackage.myaction" />
    </intent-filter>
</receiver>

С уважением, Стефан

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