tôi có thể đăng ký thành công ứng dụng của tôi cho thông báo đẩy:RegisterForRemoteNotificationTypes gây UI để treo
UIApplication.SharedApplication.RegisterForRemoteNotificationTypes(
UIRemoteNotificationType.Alert
| UIRemoteNotificationType.Badge
| UIRemoteNotificationType.Sound);
Nhưng bất cứ khi nào tôi thực hiện điều này, giao diện người dùng của tôi bị treo cho thường 2-3 giây. Ngay cả khi tôi có nó sớm trong vòng đời của ứng dụng như được đề xuất (ví dụ: ngay cả WillFinishLaunching
) giao diện người dùng của tôi vẫn bị treo khi lần tải ViewController đầu tiên của tôi.
Suy nghĩ đầu tiên của tôi là thực hiện việc đăng ký trong một thread riêng biệt, nhưng MonoTouch ngăn chặn điều này:
// From MonoTouch.UIKit
public virtual void RegisterForRemoteNotificationTypes(UIRemoteNotificationType types)
{
UIApplication.EnsureUIThread();
suy nghĩ tiếp theo của tôi là ít nhất bật lên một hộp UIAlertView
để cho người dùng biết một cái gì đó đang xảy ra, nhưng vì lý do nào đó, nó không hiển thị cho đến khi sau khi đăng ký diễn ra, dẫn đến việc mở UIAlertView
và đóng ngay lập tức!
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);
Làm thế nào tôi có thể một trong hai
- Dừng việc đẩy mạnh đăng ký thông báo từ trói thread UI của tôi
- che đậy đóng băng UI?