5

posso registrare con successo la mia app per le notifiche push:RegisterForRemoteNotificationTypes provoca interfaccia utente per appendere

UIApplication.SharedApplication.RegisterForRemoteNotificationTypes(
    UIRemoteNotificationType.Alert 
    | UIRemoteNotificationType.Badge 
    | UIRemoteNotificationType.Sound); 

Ma ogni volta che esegue questo, la mia interfaccia utente si blocca per 2-3 secondi. Anche se l'ho già fatto all'inizio del ciclo di vita dell'app come consigliato (ad esempio, anche WillFinishLaunching), la mia interfaccia utente si blocca ancora una volta il caricamento del mio primo ViewController.

Il mio primo pensiero è stato quello di eseguire la registrazione in un thread separato, ma MonoTouch impedisce questo:

// From MonoTouch.UIKit 
public virtual void RegisterForRemoteNotificationTypes(UIRemoteNotificationType types) 
{ 
    UIApplication.EnsureUIThread(); 

mio pensiero successivo è stato ad almeno apparire una scatola UIAlertView per permettere all'utente di sapere qualcosa sta succedendo, ma per qualche motivo non è stato visualizzato fino al dopo il la registrazione ha avuto luogo, con conseguente apertura UIAlertView e chiusura immediata!

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); 

come posso neanche

  1. Fermare la spinta di registrazione notifica da legare il mio thread UI
  2. coprire il congelamento UI?

risposta

1

Forse si ignora public override RegisteredForRemoteNotifications void (applicazione UIApplication, NSData deviceToken)

o

public override FailedToRegisterForRemoteNotifications void (applicazione UIApplication, errore NSError)

ho avuto problema simile dove all'interno della funzione Registered ... ho chiamato un servizio web per caricare il token del dispositivo. Ma la chiamata web non era all'interno di un altro thread, quindi ha causato il blocco dell'interfaccia utente.

Problemi correlati