Ich kann meine App für Push-Benachrichtigungen erfolgreich registrieren:RegisterForRemoteNotificationTypes verursacht UI hängen
UIApplication.SharedApplication.RegisterForRemoteNotificationTypes(
UIRemoteNotificationType.Alert
| UIRemoteNotificationType.Badge
| UIRemoteNotificationType.Sound);
Aber immer, wenn ich dies ausführen, hängt meine UI in der Regel 2-3 Sekunden. Selbst wenn ich es früh im App-Lebenszyklus wie empfohlen habe (z. B. sogar WillFinishLaunching
), bleibt meine Benutzeroberfläche immer hängen, sobald mein erster ViewController geladen wird.
Mein erster Gedanke war die Registrierung in einem separaten Thread ausführen, aber Monotouch verhindert dies:
// From MonoTouch.UIKit
public virtual void RegisterForRemoteNotificationTypes(UIRemoteNotificationType types)
{
UIApplication.EnsureUIThread();
Mein nächster Gedanke zumindest einen UIAlertView
Box Pop-up war der Benutzer weiß, auf was los ist, aber aus irgendeinem Grund wurde es nicht angezeigt, bis nach die Registrierung stattfand, was dazu führte, dass die UIAlertView
öffnen und sofort schließen!
modalPopup = new UIAlertView("Working", "The application is loading...", null, null);
modalPopup.Show();
// It doesn't show here!
RegisterForRemoteNotificationTypes();
// It shows here!
modalPopup.DismissWithClickedButtonIndex(0, true);
Wie kann ich entweder
- Stoppen Sie die Push-Benachrichtigung Registrierung von binden meine UI-Thread
- verschleiern die UI freeze up?