Кажется, что нет простого способа связаться с пользовательским интерфейсом в GcmListenererService, как я описал в this question.Уведомление Android-интерфейса Xamarin от GcmListenerService
Теперь я спрашиваю, будет ли косвенный способ уведомлять пользовательский интерфейс о входящих сообщениях из GcmListenerService, например, о некоторых локальных уведомлениях. Я попытался связать службу с пользовательским интерфейсом, но GcmListenerService не имеет метода overbidden OnBind.
Вот мой код, я до сих пор мог зарегистрировать информацию о сообщении, что не очень полезно для конечных пользователей. Это отстой, если нет возможности сообщить пользовательскому интерфейсу о push-сообщениях.
[Service(Exported = false), IntentFilter(new[] { "com.google.android.c2dm.intent.RECEIVE" })]
class MyGcmListenerService : GcmListenerService
{
public override void OnMessageReceived(string from, Bundle data)
{
string msg = data.GetString("message");
Log.Info("GcmLstnrService", "From: " + from);
Log.Info("GcmLstnrService", "Msg: " + msg);
}
}
Btw, это действительно легко и понятно, например. отображать всплывающее окно в приложениях iOS и Win Phone при поступлении push-сообщения, но это действительно сложно реализовать на Android.
Что представляет собой контейнерный объект и как его получить? – mkkekkonen
Контейнерный контейнер для инверсии контейнера управления. Короче говоря, это способ разрешения зависимостей, поддерживая слабое соединение. подробнее здесь http://arteksoftware.com/ioc-containers-with-xamarin/ – wishmaster
Спасибо за информацию! – mkkekkonen