1. 程式人生 > >Timer 計時器進入後臺仍能繼續執行

Timer 計時器進入後臺仍能繼續執行

利用蘋果給出的三種類型的程式可以保持在後臺執行:音訊播放類AVFoundation 在Build Phases新增依賴庫  

1、步驟一:在Info.plist中,新增"Required background modes"鍵,value為:App plays audio

2、步驟二:

複製程式碼
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
    
// Override point for customization after application launch. NSError *setCategoryErr = nil; NSError *activationErr = nil; [[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayback error: &setCategoryErr]; [[AVAudioSession sharedInstance] setActive: YES error:
&activationErr]; self.window.backgroundColor = [UIColor whiteColor]; [self.window makeKeyAndVisible]; return YES; }

3、步驟三:將以下程式碼新增到appDelegate檔案中的- (void)applicationDidEnterBackground:(UIApplication *)application函式,也可新增到在具體類中註冊的應用進入後臺後的通知方法

複製程式碼
- (void)applicationDidEnterBackground:(UIApplication *)application{
UIApplication* app = [UIApplication sharedApplication]; __block UIBackgroundTaskIdentifier bgTask; bgTask = [app beginBackgroundTaskWithExpirationHandler:^{ dispatch_async(dispatch_get_main_queue(), ^{ if (bgTask != UIBackgroundTaskInvalid) { bgTask = UIBackgroundTaskInvalid; } }); }]; dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ dispatch_async(dispatch_get_main_queue(), ^{ if (bgTask != UIBackgroundTaskInvalid) { bgTask = UIBackgroundTaskInvalid; } }); }); }
複製程式碼

完成以上步驟你會發現,程式進入後臺後仍可執行定時器!


相關推薦

Timer 計時進入後臺繼續執行

利用蘋果給出的三種類型的程式可以保持在後臺執行:音訊播放類AVFoundation 在Build Phases新增依賴庫   1、步驟一:在Info.plist中,新增"Required background modes"鍵,value為:App plays audio

關於Timer計時控制元件的java.lang.IllegalStateException: TimerTask is scheduled already問題分析

博主最近在改被人的專案,準備寫一個類似今日頭條的載入完成提示,就寫了個計時器讓它顯示幾秒,於是就用到了timer這個計時器控制元件,簡單的正常程式碼如下,因為博主的載入需要多次,當timer二次呼叫的時候就出現了java.lang.IllegalStateException: TimerTask i

Unity計時(實現暫停,繼續等功能)

       計時器是遊戲開發的一個非常常用的功能,簡單計時器的實現方式有很多中,可以每幀給一個float變數加Time.deltaTime,到一定時間的時候呼叫某個函式。也可以使用unity的協程和InvokeRepeating。但是簡單的使用這些組合呼叫起

.NET WinForm中的三種Timer(計時)的區別和用法

.NET中的三種Timer(計時器)的區別和用法卡卡 發表於 2014/12/5 13:02:00 | 分類標籤: Timer 計時器 ASP.NET NET中有3個不同的定時器。這3個定時器分別是: 1.實現按使用者定義的時間間隔引發事件的計時器。此計時器最宜用於 Wi

關於安卓如何實現計時chronometer的暫停和繼續計時功能

package com.book.b525; import java.text.ChoiceFormat; import android.app.Activity; import android.app.ActionBar; import android.app.AlertDialog; import and

iOS timer計時

timer,計時器,就是用來計時的,可以將它和要處理的動作繫結起來,讓這個動作在某段時間之後執行,或者週期性地執行。 一、timer的工作原理 timer的工作和run loop密不可分,由於平常我們使用Application Kit和UIKit來新建的

ios之使程式在後臺繼續執行

三種類型的程式可在後臺執行 1.音樂2.location 3.voip 在info.plist中新增Required background modes一行 可新增App plays audio、App registers for location updates、Ap

Timer定時如何在時間範圍內執行?

       我們知道,Timer定時器是不支援時間範圍內的執行,但是需求中有這樣的情景,我們有一個預約扣款的需求,扣款成功後就會發簡訊,但是我們也不知道什麼時候扣款成功,有時候半夜凌晨就會扣款成功,我們扣款成功判斷這裡用Timer定時器掃描的,每隔一段時

php實現非同步方法之一(php對於curl或瀏覽器或ajax請求立即返回結果,返回結果後的php程式碼還繼續執行)

如題:  服務端php程式碼如下:(瀏覽器和curl的請求都可以使用) //要輸出到瀏覽器的內容, nginx伺服器快取內容需要大於65536才能輸出 $str = str_repeat(' ', 65536); //告訴瀏覽器資料長度,瀏覽器接收到此長度資料後就不再接收資

如何在關閉SSH Session的情況下,程式還繼續執行

有時我們希望程式在SSH Session斷開的情況下,可以繼續執行。Wiki的nohup頁面提供了以下幾種方式: 1.nohup命令 nohup是一個POSIX命令,忽視退出終端時的HUP(hangup)訊號。 示例: 執行下面的命令啟動程式abcd,abcd在後臺執行,且

倒計時封裝 程式進入後臺不會暫停計時

// Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your applicat

Timer TimerTask CountDown 計時 API

htm syn 立即執行 relevant llb ted 在一起 進行 col Timer 計時器一種工具,線程用其安排以後在後臺線程中執行的任務。可安排任務執行一次,或者定期重復執行。與每個 Timer 對象相對應的是單個後臺線程,用於順序地執行所有計時器任務。計時器任

unity 後臺計時實現

dont pause cau ive rep des 調用 pos object 問題:最近在做一個倒計時的功能,發現倒計時在程序切換到後臺是會停止計時,發現unity 安卓後臺運行時,計時器不在運行,再次切回App時從切到後臺的時間點計時,例如切到後臺時位10,後臺切回a

Java計時Timer的使用

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

微信小程式在掃一掃進入小程式的時候 安卓手機後臺繼續執行的常規處理

一般在掃一掃進入小程式是沒什麼問題的 關於這個話題就不多說 怎麼去配置後臺 我的部落格裡面有提到 有興趣的可以去看看 現在是使用者第一次掃碼進入之後 退出小程式 在外部掃一掃進入小程式指定介面的時候 安卓手機就出現了一個問題 它會閃爍一下 返回的首頁去 而不是我們想要的 因為安卓手機有一個常規的操作 就是微信

Android 計時Timer用法

1.計時器Timer基本用法,完成倒計時 public class TimeActivity extends AppCompatActivity { private Timer timer; @Override protected void onCreate(Bundl

[iOS] 計時 (Timer)

想要做一個計時器 (Timer),可以怎麼做?使用NSTimer,每隔一秒鐘更新一次秒數,就這麼簡單! - (void)viewDidLoad { [super viewDidLoad]; // 設定Timer,每過1秒執行方法 self.accumulatedTime = 0; self.timer =

使用Timer組件制作計時

img sta 運用 sharp first pre day .text 屬性 實現效果:    知識運用:   Timer組件的interval屬性    //獲取或設置Timer組件Tick事件發生的時間間隔   public int Interval {get;s

讓程式掛起後,後臺繼續執行任務

原文出自:www.hangge.com 轉載請保留原文連結:http://www.hangge.com/blog/cache/detail_811.html 1,程式的掛起和退出 由於iOS裝置資源有限。當用戶點選了home鍵,或者另一個應用程式啟動了。那

讓App進入後臺以後長時間在後臺執行,並且正常接收來自前臺的訊息

以前關於讓app在後臺長時間執行是用播放一個無聲的音樂來實現,但是這樣也智慧爭取到最多10分鐘的後臺執行時間,如果是跟藍芽通訊有關的app的話,倒是可以通過配置info.plist檔案的鍵值對來實現a