簡體   English   中英

在iPhone的標簽欄項上顯示更新的徽章計數的最佳方法

[英]Best way to show updated badge count on tab bar item on the iPhone

我正在使用的iPhone應用程序主要是通過API從Web應用程序獲取數據的。 為了詳細起見,我們只說我正在處理活動提要。

我的問題是,獲取需要查看的新項目計數的最佳方法是什么,因此我可以在相應的標簽欄項目上粘貼徽章?

由於這可能會使您感到困惑/過於籠統,所以我在想...

毫無疑問,我將必須在電話中本地存儲某種時間戳或某些內容(我應該使用SQLite嗎?)。 因此,假設每次有人點擊帶有供稿列表的選項卡項目時,我都會使用SQLite,文件等方法記錄該時間戳。然后,我可以進行一個API調用,該調用本質上獲取了新的活動項目,比存儲的時間戳記新,並且如果差異大於零,請顯示徽章。

但是,我堅持何時應該發生這種情況以及涉及的整個過程。 我應該什么時候打起電話? 如果我在AppDelegate中執行此操作,它將永遠不會再被調用,對嗎? (因為AppDelegate永遠不會重新加載自身嗎?)當用戶單擊選項卡時,我可以這樣做,但是這樣做沒有達到目的,因為我想給他們一個單擊選項卡的理由(我不單擊語音郵件選項卡看看我是否有語音信箱,除非有一個徽章告訴我我有。 還有一個問題,就是用戶在應用程序中時會更新徽章-后台任務? (我可以暫時忽略此部分)

希望您能看到我正在嘗試做的事情...的想法,想法和/或建議非常感謝。

謝謝!

有許多不同的方法可以執行此操作(如果我了解您要執行的操作)。 因為這是一個相當籠統的問題,所以我只能給出籠統的答案。

首先,因為這是一個標簽欄應用程序,所以我可能會在應用程序委托中創建一個NSTimer,以每60秒調用一次網絡連接。 您感興趣的電話是

scheduledTimerWithTimeInterval:(NSTimeInterval)ti target:(id)aTarget selector:(SEL)aSelector userInfo:(id)userInfo repeats:(BOOL)yesOrNo;
這樣,您可以指定每隔x秒運行一次的方法。

您也可以在線程中執行此操作,並在連接完成后使線程休眠60秒。 如果您開始iPhone開發,那么我可能會同時使用NSTimer。

就存儲而言,它取決於是否使用sqlite需要多少存儲空間和排序。 甚至有可能只使用存儲在帶有時間戳的NSMutableArray中的NSDictionary。

時間戳的問題是,在一定時間段后,它是否被視為已讀? 如果不是BOOL,可能會更好,一旦用戶讀取,將bool設置為false,然后調用應用程序委托,以根據bool的輸入量為true來重新加載徽章編號。

再次是問題的抽象視圖。 讓我知道您是否需要更多詳細信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM