[英]Keep app running while iOS device locked?
我有一個可以大量使用視頻的應用程序。 在一個典型的用例中,我將iPad連接到外接顯示器。 我只希望外接顯示器打開; iPad顯示屏不需要一直保持打開狀態。
理想的情況是某人連接到外部顯示器,然后鎖定他們的iPad。 但這暫停了我的應用程序。 (當前,我正在調用setIdleTimerDisabled以防止iPad鎖定並暫停我的應用程序。)
我想為用戶提供鎖定iPad的選項,但仍然可以讓我的應用程序運行並向視頻發送圖像。 (注意:我並不是在說我的應用程序不在前台時要保持運行。我只想在應用程序在前台時保持運行,但設備已鎖定。)
這可能嗎?
我會說不,這是不可能的。 原因如下:
該文檔閱讀:
按下“睡眠/喚醒”按鈕是另一種類型的中斷,會導致您的應用暫時停用。 當用戶按下此按鈕時,系統禁用觸摸事件,將應用程序移至后台,但將應用程序的applicationState屬性的值設置為
UIApplicationStateInactive
(與UIApplicationStateBackground
相對),最后鎖定屏幕。
在上面的文檔中需要注意的有趣一點是,在“發生中斷時該怎么辦”下,Apple建議您停止執行某些任務。
為響應此更改,您的應用程序應在其
applicationWillResignActive:
方法中執行以下操作:
- 停止計時器和其他定期任務。
- 停止所有正在運行的元數據查詢。
- 不要啟動任何新任務。
- 暫停電影播放(通過AirPlay播放時除外)。
- 如果您的應用是游戲,請進入暫停狀態。
- 節流返回OpenGL ES幀速率。
- 掛起執行非關鍵代碼的所有調度隊列或操作隊列。 (您可以在不活動時繼續處理網絡請求和其他對時間敏感的后台任務。)
這告訴我,蘋果不希望或期望您的應用在這種狀態下能做很多事情,除了准備充分使用背景知識外。
在相關說明中,以下是一個線程,該線程顯示如何確定您是否已按下“睡眠/喚醒”按鈕:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.