public override void PerformFetch(UIApplication application, Action <UIBackgroundFetchResult> completionHandler) { OmegaFactory.MakeSureInit(); AlphaFactory.MakeSureDomain().BackgroundUpdateLastPublicActivityAsync().ContinueWith ( t => completionHandler(UIBackgroundFetchResult.NoData) // UIBackgroundFetchResult.NewData を返すと呼ばれなくなるフシがあるので必ず UIBackgroundFetchResult.NoData // を返しておくようにしてみる。 ); }
void UpdateLastPublicActivity(Intent intent) { OmegaFactory.MakeSureInit(); var Domain = AlphaFactory.MakeSureDomain() as OmegaDomain; try { Domain.ThreadContext.Value = this; Domain.BackgroundUpdateLastPublicActivityAsync().Wait(); } finally { Domain.ThreadContext.Value = null; } }
public void Run(IBackgroundTaskInstance taskInstance) { var Deferral = taskInstance.GetDeferral(); OmegaFactory.MakeSureInit(); AlphaFactory.MakeSureDomain() .BackgroundUpdateLastPublicActivityAsync() .ContinueWith ( t => { Deferral.Complete(); } ); }
public void UpdateLastPublicActivity(Context context, Intent intent) { OmegaFactory.MakeSureInit(); var Domain = AlphaFactory.MakeSureDomain() as OmegaDomain; try { Domain.ThreadContext.Value = context; Domain.AutoUpdateLastPublicActivityAsync().Wait(); } finally { Domain.ThreadContext.Value = null; } }