2011-09-12 13 views
5

Mặc dù tôi nghĩ đây là một câu hỏi khá tầm thường, tôi không thể tìm thấy bất kỳ câu trả lời nào ở đó.Làm cách nào để nhận được thông báo với MonoTouch về đơn đăng ký của tôi bị đóng/gửi lên nền?

Câu hỏi của tôi là:

Có cách nào để nhận được thông báo trong một ứng dụng MonoTouch iPhone khi ứng dụng của tôi đang được đóng cửa hoặc gửi đến nền (bởi một người dùng nhấn vào nút home)?

Tôi nghĩ rằng ghi đè WillTerminate là tốt cho điều này, nhưng trong trình gỡ lỗi, nó không bao giờ được gọi.

Trả lời

8

Có hai cách để được thông báo khi một ứng dụng chạy ẩn:

a. Ghi đè phương thức thích hợp trong AppDelegate của bạn:

public override void DidEnterBackground(UIApplication application) 
{ 
    // App entered background, do some light stuff here, 
    // there is not much time before getting suspended 
} 

b. Thêm quan sát thông báo thông qua các lớp NSNotificationCenter:

NSObject observer = NSNotificationCenter.DefaultCenter.AddObserver(
    UIApplication.DidEnterBackgroundNotification, 
    delegate(NSNotification ntf) { 

      // Same as above 
    }); 

Bạn có thể sử dụng đối tượng NSObject trở về từ phương pháp AddObserver để loại bỏ các quan sát viên khi bạn không còn cần đến nó:

NSNotificationCenter.DefaultCenter.RemoveObserver(observer);