コメント
コメントの投稿
※名前とタイトルが入力されていないコメントでは他のコメントとの区別ができません。
入力されていないコメントには返信しませんのであらかじめご了承くださいませ。
private NotificationService _nService;
public override bool FinishedLaunching(UIApplication app, NSDictionary options)
{
global::Xamarin.Forms.Forms.Init();
LoadApplication(new App());
//バックグラウンドフェッチの間隔を設定
UIApplication.SharedApplication.SetMinimumBackgroundFetchInterval(UIApplication.BackgroundFetchIntervalMinimum);
return base.FinishedLaunching(app, options);
}
public override void PerformFetch(UIApplication app, Action<UIBackgroundFetchResult> completionHandler)
{
try
{
System.Diagnostics.Debug.WriteLine("●PerformFetch start");
this.BackgroundService();
}
catch (Exception ex)
{
System.Diagnostics.Debug.WriteLine(ex.Message + System.Environment.NewLine + ex.StackTrace);
}
finally
{
completionHandler(UIBackgroundFetchResult.NewData);
}
}
private async void BackgroundService()
{
await Task.Run(() =>
{
try
{
System.Diagnostics.Debug.WriteLine("●BackgroundService.Thread.Start");
while (true)
{
InvokeOnMainThread(delegate
{
if (_nService == null)
{
//通知機能の認証
_nService = new NotificationService();
_nService.Regist();
}
_nService.On("PerformFetchTitle", "PerformFetchBody time:" + UIApplication.SharedApplication.BackgroundTimeRemaining.ToString());
});
System.Threading.Thread.Sleep(60000);
}
}
catch (Exception ex)
{
System.Diagnostics.Debug.WriteLine(ex.Message + System.Environment.NewLine + ex.StackTrace);
}
}).ConfigureAwait(false);
}
※名前とタイトルが入力されていないコメントでは他のコメントとの区別ができません。
入力されていないコメントには返信しませんのであらかじめご了承くださいませ。