2012-05-14 28 views
1

概述的iOS - UILocalNotification - 可以在給定時間

  • 我有一個iOS應用,其在特定的日期發送本地通知調度僅達64個時隙。
  • 我剛剛瞭解到,我只能在給定的時間安排64個通知。
  • 有些情況下,我無法安排通知,因爲64個插槽已滿。
  • 因此,我將它們存儲在數據庫中,當用戶響應通知時,我檢查是否有任何可用的插槽並安排剩餘的通知。

問題

  • 當用戶不來不執行我的代碼的通知作出迴應,所以我不能夠進度中的剩餘的通知。

問題

  1. 是否有一個解決這個問題?
  2. 我可以在某些時間執行一段代碼(管家)嗎?
  3. 有沒有解決這個問題的方法?
+0

不知道你是否仍然需要這個。如何管理scheduledNotifications數組?所以你可以檢查數組中是否有空間。或者,當數組變滿時,您可以清空數組中的第一個項目,並讓您的應用程序將其標記爲需要進行跟蹤的項目。 – Michael

+0

感謝Micheal,你是禮拜我可以檢查數組中是否有空間,然後安排任何未決的通知。但是我只能在應用程序打開時才能這樣做。因此,如果用戶不決定打開應用程序,我將無法檢查是否有空間。 – user1046037

+0

我能想到的最好的方法是創建一個數據庫並存儲所有待處理的通知。當用戶打開應用程序時,應用程序會在可能的情況下(在刪除/通知被觸發後)檢查是否可以安排一些待處理的通知。再次,當應用程序沒有打開,沒有什麼可以做的。還需要仔細檢查是否可以在創建條目之前安排通知,否則最好告訴用戶,他可能需要在每次觸發通知時打開應用程序,以便在通知被觸發時以及應用程序被打開執行你的代碼。 – user1046037

回答

2

你可能不想告訴用戶有問題,而只是在後臺執行。如果用戶有一個應用程序的64個通知,並沒有打開應用程序,那麼他們可能沒有使用該應用程序。一旦通知發佈,它就不在陣列中了。所以每次發佈通知時你都會有空間。但是,他們仍然留在通知中心,您必須清除自己。

它通常更好的是不向用戶提出可能的問題,而是在內部有意義的情況下處理它們,如果這是一個選項。查找appDelegate的委託方法,你很可能會找到辦法來處理你想要做的事情。

想到如果您想接受答案,我會發一個帖子。

祝你好運。

+0

感謝Michael對那個提示,是的,我想你說的話是有道理的,如果用戶沒有打開應用程序,那麼這可能意味着他不再使用它了。當非重複通知被自動觸發時,它會從[[UIApplication sharedApplication] scheduledLocalNotifications]中移除,所以我認爲不需要手動清除它們。當插槽可用時,我嘗試安排任何掛起的通知。 – user1046037

+0

祝你好運:)。 – Michael

相關問題