2017-03-07 2 views
1

実際に私のアプリケーションでは、異なる時刻に2つ以上のタイマーを開始しています。一定の時間間隔の後、私は通知を発射したい。アプリがフォアグラウンドではあるがバックグラウンドではないときはうまくいきます。これをどうすれば解決できますか?一度にローカル通知でfireDateに日付の配列を設定する方法

助けてください。ありがとう!あなたは次の操作を行う必要がある

+0

ONここ – tausun

答えて

1

...

enter image description here

あなたがバックグラウンドモードをオンにする必要があります。 AppDelegateで

@property (nonatomic, assign) UIBackgroundTaskIdentifier backgroundTask; 

プロパティを作成し、次の操作を行い、バックグラウンドで

をアプリを実行するには、このコードを追加します...

- (void)applicationDidEnterBackground:(UIApplication *)application { 

    self.backgroundTask = [application beginBackgroundTaskWithExpirationHandler:^{ 
     DLOG(@"End of tolerate time. Application should be suspended now if we do not ask more 'tolerance'"); 

    }]; 

    if (self.backgroundTask == UIBackgroundTaskInvalid) { 
     DLOG(@"This application does not support background mode"); 
    } else { 
     //if application supports background mode, we'll see this log. 
     DLOG(@"Application will continue to run in background"); 
    } 

} 

私はそれはあなたを助けることを願っています。アプリは、このメソッドが呼び出された時、あなたのコードはまだこのメソッドに実行することを背景に行くときにこのappdelgate方法にタイマー

- (void)applicationDidEnterBackground:(UIApplication *)application { 
} 

両方を扱うことができる

+0

おかげで、あなたのコードを追加します。それは私のために働いています –

+0

ようこそ@Goneshkr :) –

+0

iOS 10.でバックグラウンド実行時間を拡張する方法今それはわずか3分働いています。 "beginBackgroundTaskWithExpirationHandler"を使用します。 –

0

、希望これがお手伝いします。

注:最初のプロジェクトのターゲットにバックグラウンドモードを有効にする - > [可用性]タブ - > [バックグラウンドモード - >

+0

applicationDidEnterBackgroundでtimerメソッドを呼び出せますか? –

+0

はい、あなたはtimerメソッドを呼び出すことができますが、他のviewcontrollerでメソッドを作成できるのであれば、コードをappdelegateに変更してappdelegateでメソッドを作成し、appdelegateインスタンスを使用して他のクラスのメソッドを呼び出す必要があります。 – Nilesh

+0

実際、私はhomeViewControllerでtimerメソッドを作成しました。そして、私はhomeVC参照VARを使っているようappDelegateでそのメソッドを呼んでいる 'applicationDidEnterBackground funcを(_アプリケーション:のUIApplication){ homeVC.updateTime() }' Appdelegateでメソッドを作成@Goneshkr –

関連する問題