簡體   English   中英

即使在“刪除”應用程序之后,有沒有辦法跟蹤經過的時間?

[英]Is there a way to keep track of elapsed time even after app is “Deleted”?

我正在開發一個應用程序(僅適用於iPAD),該應用程序從“首次”安裝該應用程序起每隔三天(業務要求)向用戶顯示一個彈出框。 我正在使用NSTimer做到這一點。 如果用戶在三天前刪除該應用程序並重新安裝該應用程序,則實施會中斷。 在這種情況下,三天的計數器將重新啟動。 我知道使用日期可能不是一個好主意,因為用戶可以通過設置更改日期。

有沒有辦法可以使NSTimer(或類似的東西)在刪除應用程序后仍保持運行?

NSTimer* msgTimer = [NSTimer scheduledTimerWithTimeInterval: 259200 target: self selector: @selector(showMsg:) userInfo: nil repeats: NO];

我能想到的唯一方法是每次關閉應用程序時,將最后一次通知時間的字符串表示形式保存在鑰匙串中。 刪除應用程序后,鑰匙串不會清除。 盡管從技術上講這是對鑰匙串的濫用,但它可能會起作用,我懷疑您會遇到任何商店提交問題。

每當啟動該應用程序時,請檢查它是否是自上次安裝以來首次啟動(將此信息保存為默認值)。 如果是第一次,請檢查鑰匙串時間戳,並與當前時間戳進行比較,然后從那里開始。

假設用戶刪除了該應用並在第二天安裝了該應用。 檢查鑰匙串,您會看到它在23小時前被刪除,然后以減去23小時的時間啟動計時器(因此它將在2天1小時內發出通知)。 希望一切都有道理。

否則,如果該應用程序通常已連接到互聯網,則可以使用某種服務器。

刪除應用程序后,您的應用程序就不會沙箱化,您所做的任何事情都會消失。 您將需要某種Web服務的幫助才能實現所需的行為

我不這么認為,但我可能是錯的(有人可以糾正我)。 即使這聽起來可能是做這樣的事情的壞方法,也可能。

如何使用本地推送通知來實現這樣的目標? 似乎很適合這種情況。

用於設置計划通知的相關Appl文檔

您還可以使用iCloud的鍵值數據存儲來存儲初始安裝日期。 如果您同時在本地存儲日期並從iCloud同步日期,那么除非用戶不上網,否則用戶將很難避免獲取更新。

當然,這取決於它們是否已在設備上登錄到iCloud,並且需要iOS 5或更高版本。

暫無
暫無

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

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