У меня проблема с приемником вещания в xamarin.android. Не могу заставить его работать.
У меня есть уведомление в рабочем приложении, и я хочу изменить некоторые вещи в своем приложении после получения уведомления (например, всплывающее сообщение или значок кнопки), но оно не работает. Я не знаю, что я делаю неправильно, и я не могу найти решение, потому что все темы связаны с Java. Мне нужно что-то, событие или широковещательный приемник, чтобы срабатывать, когда пользователь получает уведомление, а затем я хочу сделать кое-что в моем MainActivity.
Итак, это код.
Класс BroadcastReceiver:
[BroadcastReceiver(Enabled = true, Exported = false)]
public class MyMessageReceiver : BroadcastReceiver
{
public override void OnReceive(Context context, Intent intent)
{
bool messageReceived = intent.GetBooleanExtra("messageReceived", false);
}
}
Метод OnMessageReceived:
{
base.OnMessageReceived(message);
SendNotification(message.GetNotification().Body);
LocalBroadcastManager broadcaster = LocalBroadcastManager.GetInstance(this);
Intent intent = new Intent("message");
intent.PutExtra("messageReceived", true);
broadcaster.SendBroadcast(intent);
}
И методы OnResume и OnPause:
protected override void OnResume()
{
base.OnResume();
LocalBroadcastManager.GetInstance(this).RegisterReceiver(myReceiver, new IntentFilter("message"));
RegisterReceiver(myReceiver, new IntentFilter("message"));
}
protected override void OnPause()
{
base.OnPause();
LocalBroadcastManager.GetInstance(this).UnregisterReceiver(myReceiver);
}
Я не знаю, как получить эту информацию, например, в моем методе OnCreate в MainActivity? Я пробовал с
messageReceived = Intent.GetBooleanExtra("messageReceived", false);
if (messageReceived)
{
Toast.MakeText(this, "new notification", ToastLength.Long).Show();
}
Но это не работает, messageReceived равно нулю.