Ответ 1
Нет, вы не можете.
Локальный BroadcastReceiver
не является реальным BroadcastReceiver
, в основном его списком функций callbacks
.
Вы можете проверить исходный код LocalBroadcastManager.java.
Есть ли способ зарегистрировать BroadcastReceiver в AndroidManifest.xml и получать широковещательную рассылку, отправленную LocalBroadcastManager?
В настоящее время я должен позвонить
registerReceiver(BroadcastReceiver receiver, IntentFilter filter)
чтобы зарегистрировать приемник, объявить в AndroidManifest.xml не получится. Но это означает, что я должен точно знать имя пакета получателя и имя класса, а не только фильтр намерений. Можно ли объявить получателя в файле манифеста?
следующий мой текущий код.
AndroidManifest.xml:
...
<receiver
android:name="com.example.test.MessageReceiver"
android:enabled="true" >
<intent-filter>
<action android:name="com.m2x.test.intent.MESSAGE_RECEIVED" />
</intent-filter>
</receiver>
...
MainActivity.java:
Intent intent = new Intent();
intent.setAction("com.m2x.test.intent.MESSAGE_RECEIVED");
LocalBroadcastManager manager = LocalBroadcastManager.getInstance(mContext.get());
manager.sendBroadcast(intent);
MessageReceiver.java
public class MessageReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals("com.m2x.test.intent.MESSAGE_RECEIVED")) {
Toast.makeText(context, "user message received", Toast.LENGTH_SHORT).show();
}
}
}
Нет, вы не можете.
Локальный BroadcastReceiver
не является реальным BroadcastReceiver
, в основном его списком функций callbacks
.
Вы можете проверить исходный код LocalBroadcastManager.java.