2017-01-13 11 views
0

ユーザー通知フレームワークを使用して30分ごとにローカル通知をスケジュールするアプリ。私はトリガーを設定しました特定の時刻にiOSローカル通知を停止する

var trigger = UNTimeIntervalNotificationTrigger.CreateTrigger(60 * 30, true); 

しかし、私はこれらの通知を特定の時間の後に9.00 PMと言うことを止めたいと思います。どうすればいいのですか?

答えて

0

ローカル通知を削除するには3つの方法があります。

1.アプリがフォアグラウンドの場合: -アプリがフォアグラウンドになっている場合、ローカルデバイスの時刻を確認し、保留中のローカル通知をすべて削除します。

UNUserNotificationCenter.Current.RemoveAllPendingNotificationRequests(); 

2.アプリはバックグラウンドで動作している場合:アプリケーションがバックグラウンドにあるときは、一定の時間でコードを実行することはできません。特定の時刻にローカル通知を削除するには、2つの方法があります。しかし、利用可能なリソース、バッテリのパーセンテージ、デバイスが充電中であるなど、コールバックメソッドがコールする必要があるかどうかを決定するのはOSです。

a。バックグラウンドフェッチ - バックグラウンドフェッチ機能を有効にします。バックグラウンドフェッチ機能は、デバイスがバックグラウンドにある特定の時間後にコールバックメソッドを呼び出します。再び、OSはアプリケーションの使用状況に応じていつ呼び出すかを決定します。

//Fetch interval 
UIApplication.SharedApplication.SetMinimumBackgroundFetchInterval(UIApplication.BackgroundFetchIntervalMinimum); 


//Call back method 
    public override void PerformFetch(UIApplication application, Action<UIBackgroundFetchResult> completionHandler) 
     { 
      // Code of removing local notifications 
     } 

b。サイレント通知の使用:アプリケーションが静かなリモート通知を受信すると、リモート通知がサウンドとアラートなしでコールされたコールバックメソッドを受信しました。ローカル通知を削除するコードを実行できます。

関連する問題