ã¢ããªã±ãŒã·ã§ã³ã¯ãéã¢ã¯ãã£ãã§ãã£ãŠããã·ã¹ãã ã«ãã£ãŠçæãããã€ãã³ãã«å¿çã§ããŸãã ãããè¡ãã«ã¯ãSystemTriggerã¯ã©ã¹ã䜿çšããŠããã¯ã°ã©ãŠã³ããžã§ããç»é²ããå¿
èŠããããŸãã
ããšãã°ãã€ã³ã¿ãŒãããã®åºçŸãSMSã®åä¿¡ãã¿ã€ã ãŸãŒã³ã®å€æŽãªã©ã®ã€ãã³ããããã£ãããã§ããŸãã
ããã«å ããŠãããã€ã¹/ã·ã¹ãã ã®ã¹ããŒã¿ã¹ãç¹å®ã®æ¡ä»¶ã«æºæ ããŠãããã©ããã®ãã§ãã¯ãè¿œå ã§ããŸãã ããªã¬ãŒã®ã€ãã³ãã§ã¯ãæå®ããããã¹ãŠã®æ¡ä»¶ããã§ãã¯ãããŸãã
ã·ã¹ãã ããªã¬ãŒã«å ããŠãã¿ã€ããŒã§ããŸãã¯ç¹å¥ãªã€ãã³ãã®çµæãšããŠèµ·åã§ããããŸããŸãªããªã¬ãŒããããŸãã
ãã®ãããWindows 8.1ã¢ããªã±ãŒã·ã§ã³ã§äœ¿çšãããããªã¬ãŒã®çš®é¡ããªã¹ãããŸãã
SystemTrigger-æãäžè¬çãªããªã¬ãŒã ã·ã¹ãã ã€ãã³ããçºçããå Žåã«çºçããŸãã
ããã¯ç»é¢ãžã®ç»é²ãå¿
èŠãšããªãããªã¬ãŒã¯æ¬¡ã®ãšããã§ãã
InternetAvailable-ã€ã³ã¿ãŒããããå©çšå¯èœã«ãªããšãããã¯ã°ã©ãŠã³ãã¿ã¹ã¯ãéå§ãããŸã
NetworkStateChange-ãããã¯ãŒã¯ç¶æ
ãå€åãããšããã¯ã°ã©ãŠã³ãã¿ã¹ã¯ãéå§ããŸã
OnlineIdConnectedStateChange-ãã®ã¢ã«ãŠã³ãã«æ¥ç¶ãããŠããMicrosoftã¢ã«ãŠã³ããå€æŽããããšãããã¯ã°ã©ãŠã³ãã¿ã¹ã¯ãéå§ãããŸã
SmsReceived-æ°ããSMSã¡ãã»ãŒãžãåä¿¡ãããšããã¯ã°ã©ãŠã³ãã¿ã¹ã¯ãéå§ããŸã
TimeZoneChange-ããã¯ã°ã©ãŠã³ãã¿ã¹ã¯ã¯ãããã€ã¹ã®ã¿ã€ã ãŸãŒã³ãå€æŽããããšãã«éå§ãããŸã
ServicingComplete-ã·ã¹ãã ãã¢ããªã±ãŒã·ã§ã³ã®æŽæ°ãå®äºãããšãããã¯ã°ã©ãŠã³ãã¿ã¹ã¯ãéå§ãããŸã
ã¢ããªã±ãŒã·ã§ã³ãããã¯ç»é¢ã«ç»é²ãããŠããå Žåã次ã®ããªã¬ãŒãå©çšã§ããŸãã
UserPresent-ãŠãŒã¶ãŒãæ»ããšããã¯ã°ã©ãŠã³ãã¿ã¹ã¯ãéå§ããŸã
UserAway-ãŠãŒã¶ãŒãã¢ã€ãã«ç¶æ
ã®ãšãã«ããã¯ã°ã©ãŠã³ãã¿ã¹ã¯ãéå§ãããŸã
ControlChannelReset-å¶åŸ¡ãã£ãã«ããªã»ããããããšãããã¯ã°ã©ãŠã³ãã¿ã¹ã¯ãéå§ãããŸã
SessionConnected-ã»ãã·ã§ã³ãæ¥ç¶ããããšããã¯ã°ã©ãŠã³ãã¿ã¹ã¯ãéå§ãããŸã
BackgroundWorkCostChange-ããã¯ã°ã©ãŠã³ãäœæ¥ã¹ã³ã¢ãå€æŽããããšãããã¯ã°ã©ãŠã³ãã¿ã¹ã¯ãã¢ã¯ãã£ãã«ãªããŸã
ããã¯ç»é¢ã«ç»é²ããã«ãããã®ããªã¬ãŒã䜿çšããå Žåãããã¯ã°ã©ãŠã³ããžã§ãç»é²è¡
BackgroundTaskRegistration task = bgTaskBuilder.Register();
ã¢ã¯ã»ã¹æåŠã®äŸå€ãã¹ããŒããŸãã
ããã¯ç»é¢ã®ã¢ããªã±ãŒã·ã§ã³ç»é²ã€ãã³ãã«å¿çããããã«ãããã«2ã€ã®ããªã¬ãŒããããŸãã
LockScreenApplicationAdded-ããã¯ç»é¢ã«ã¿ã€ã«ãè¿œå ããããšãããã¯ã°ã©ãŠã³ãã¿ã¹ã¯ãéå§ãããŸã
LockScreenApplicationRemoved-ã¿ã€ã«ãããã¯ç»é¢ããåé€ããããšãããã¯ã°ã©ãŠã³ãã¿ã¹ã¯ãéå§ãããŸã
Windows 10ã§ã¯ãæ°ããã·ã¹ãã ããªã¬ãŒãå°å
¥ãããŸããã
PowerStateChange-ããããªãŒã®ç¶æ
ãå€åãããšããã¯ã°ã©ãŠã³ãã¿ã¹ã¯ãéå§ããŸã
ã·ã¹ãã ããªã¬ãŒãçµäºããŸãããä»ã®äœ¿çšå¯èœãªããªã¬ãŒãæ€èšããŠãã ããã
MaintenanceTrigger-æãç°¡åã§ã¯ãŒã«ãªããªã¬ãŒã ã¿ã€ããŒã®ããã«æ©èœããŸãã ééã¯å°ãªããšã15åã«èšå®ããå¿
èŠããããPCãACé»æºã«æ¥ç¶ãããŠããå Žåã¯ããªã¬ãŒãæ©èœããŸãã åã°ããã®ã¯ããã®ããªã¬ãŒãããã¯ç»é¢ã§ã®ã¢ããªã±ãŒã·ã§ã³ã®ç»é²ãå¿
èŠãšããªããšããäºå®ã§ãïŒ å¿
èŠãªããšã¯ãPCããã©ã°ã€ã³ããããšã ãã§ãã
FreshnessTimeã€ã³ã¿ãŒãã«æéã15åæªæºã«èšå®ãããŠããå Žåãããªã¬ãŒãç»é²ããããšãããšäŸå€ãã¹ããŒãããŸãã
TimeTriggerã¯
MaintenanceTriggerãšã»ãŒåãã§ããããããã¯ãŒã¯ããã®é»åã¯å¿
èŠãããŸããããããã¯ç»é¢ã§ã®ã¢ããªã±ãŒã·ã§ã³ã®ç»é²ãå¿
èŠã§ãã
PushNotificationTrigger-çã®éç¥ãåä¿¡ããããã«äœ¿çšã§ããŸãã ããã¯ç»é¢ã§ã®ã¢ããªã±ãŒã·ã§ã³ã®ç»é²ãå¿
èŠã§ãã
ControlChannelTrigger-ç¹æ®ãªãããã¯ãŒã¯æ©èœçšã ããã¯ç»é¢ã§ã®ã¢ããªã±ãŒã·ã§ã³ã®ç»é²ãå¿
èŠã§ãã
DeviceUseTrigger-ããã¯ã°ã©ãŠã³ãã§ã»ã³ãµãŒãšåšèŸºæ©åšãžã®ã¢ã¯ã»ã¹ãæäŸããŸãã ä»ã®ããªã¬ãŒãšã¯ç°ãªããã¢ããªã±ãŒã·ã§ã³ãäžæåæ¢ããå Žåã«ã®ã¿å®è¡ãããŸãã å®è¡æ¡ä»¶ããµããŒãããŠããŸããã
æ¡ä»¶ããªã¬ãŒãèµ·åãããšã次ã®æ¡ä»¶ã確èªã§ããŸãã
InternetAvailable / InternetNotAvailable
SessionConnected / SessionDisconnected
UserNotPresent / UserPresent
Windows 10ã®ãªãªãŒã¹ã«ãããããªã¬ãŒã倧å¹
ã«å¢å ããŸããã å®å
šãªãªã¹ãã¯ã¯ã©ã¹ã®äžã«ãããŸãã
Windows.ApplicationModel.BackgroundWindows UAPã¢ããªã±ãŒã·ã§ã³ã§äœ¿çšå¯èœã«ãªã£ãæ°ããããªã¬ãŒã®äžéšã次ã«ç€ºããŸãã
ApplicationTrigger-ãã®ããªã¬ãŒã䜿çšããŠãã³ãŒãã®ã©ãããã§ãããã¯ã°ã©ãŠã³ãã¿ã¹ã¯ã®å®è¡ãéå§ã§ããŸãïŒãã¿ã³ãæŒããªã©ïŒ
ToastNotificationActionTrigger-ãŠãŒã¶ãŒ
ãããŒã¹ãéç¥ã§äœããã®ã¢ã¯ã·ã§ã³ã
å®è¡ãããšçºçããŸã
ToastNotificationHistoryChangedTrigger-éç¥å±¥æŽã®å€æŽã远跡ã§ããŸãã ããšãã°ãéç¥ã»ã³ã¿ãŒã§ã¡ãã»ãŒãžãæ¶å»ããç¬éãããã£ãããããããã«äœ¿çšã§ããŸãã
LocationTrigger-ããã¯ã°ã©ãŠã³ãã¿ã¹ã¯ãéå§ããå Žæå€æŽã€ãã³ãïŒãžãªãã§ã³ã·ã³ã°æ©èœã§äœ¿çšïŒ
DeviceServicingTrigger-ããã€ã¹ã®é·æéã®æŽæ°æäœïŒãã¡ãŒã ãŠã§ã¢ãŸãã¯ãã©ã¡ãŒã¿ãŒïŒäžã«ããªã¬ãŒãããã€ãã³ã
DeviceWatcherTrigger-æ¥ç¶ãããããã€ã¹ã®ãªã¹ãã§å€æŽãçºçãããšçºçããŸã
ããã«ãæ®ãã®æ°ããããªã¬ãŒã®ãªã¹ãã®ã¿ïŒãããã¯ãããããããŸãããïŒïŒïŒ
AppointmentStoreNotificationTrigger
ActivitySensorTrigger
BluetoothLEAdvertisementPublisherTrigger
BluetoothLEAdvertisementWatcherTrigger
CachedFileUpdaterTrigger
ChatMessageNotificationTrigger
ChatMessageReceivedNotificationTrigger
CommunicationBlockingAppSetAsActiveTrigger
ContactStoreNotificationTrigger
ContentPrefetchTrigger
DeviceConnectionChangeTrigger
DeviceManufacturerNotificationTrigger
EmailStoreNotificationTrigger
GattCharacteristicNotificationTrigger
MediaProcessingTrigger
MobileBroadbandDeviceServiceNotificationTrigger
MobileBroadbandPinLockStateChangeTrigger
MobileBroadbandRadioStateChangeTrigger
MobileBroadbandRegistrationStateChangeTrigger
NetworkOperatorNotificationTrigger
NetworkOperatorHotspotAuthenticationTrigger
PhoneTrigger
RcsEndUserMessageAvailableTrigger
Rfcommconnectiontrigger
SmartCardTrigger
SmsMessageReceivedTrigger
StorageLibraryContentChangedTrigger
SocketActivityTriggeræããã«ãäžéšã®ããªã¬ãŒã¯ç¹å®ã®æ¡ä»¶äžã§ã¯æ©èœããŸããããç¹å®ã®ç®çã§ããã¯ã°ã©ãŠã³ãã¿ã¹ã¯ãå®è¡ããããã«èšèšãããŠããŸãã ããšãã°ã
MediaProcessingTriggerããªã¬ãŒãåãäžããŸãã説æã«ãããã¢ããªã±ãŒã·ã§ã³ã¯ããã¯ã°ã©ãŠã³ãã¿ã¹ã¯ã®äžéšãšããŠãã«ãã¡ãã£ã¢ããã©ã³ã¹ã³ãŒãã§ããŸãã ããã«ããããã©ã¢ã°ã©ãŠã³ãã¢ããªã±ãŒã·ã§ã³ãäœæ¥ãå®äºããå Žåã§ãããã©ã³ã¹ã³ãŒãã£ã³ã°ãç¶è¡ã§ããŸãã
ã¢ããªã±ãŒã·ã§ã³ãããã¯ã°ã©ãŠã³ããžã§ããç»é²ããå Žåããã®æ©èœããããã§ã¹ãã«ææžåããå¿
èŠããããŸãã ããã¯ããããã§ã¹ãã®ã°ã©ãã£ã«ã«ãšãã£ã¿ãŒã䜿çšããŠç°¡åã«å®è¡ã§ããŸãã


è€æ°ã®ããã¯ã°ã©ãŠã³ãã¿ã¹ã¯ãç»é²ããå¿
èŠãããå Žåã¯ããããã§ã¹ãã®ã°ã©ãã£ã«ã«ãšãã£ã¿ãŒã§å¿
èŠãªæ°ã®ã¿ã¹ã¯ãè¿œå ããŸãã

ãŸãã¯ãä»»æã®XMLãšãã£ã¿ãŒã§ãããã§ã¹ããæåã§éããApplicationã¿ã°å
ã«åæ§ã®æ§æãè¿œå ã§ããŸãã
<Extensions> <Extension Category="windows.backgroundTasks" EntryPoint="BGTaskMD.ExampleBackgroundTask"> <BackgroundTasks> <Task Type="timer" /> </BackgroundTasks> </Extension> <Extension Category="windows.backgroundTasks" EntryPoint="BGTaskMD.AppUpdateServicingCompleteTask"> <BackgroundTasks> <Task Type="systemEvent" /> </BackgroundTasks> </Extension>
Windows 8.1ã¯ã次ã䜿çšããŠèªåçã«ããã¯ç»é¢ã«ç»é²ã§ããŸãã
BackgroundAccessStatus accessresult = await BackgroundExecutionManager.RequestAccessAsync();
ãã®çµæããŠãŒã¶ãŒã¯ã¢ããªãããã¯ç»é¢ã«è¿œå ããããã«æ±ããããŸãã
ãã®ã¡ãœããã¯ã
BackgroundAccessStatusåæãè¿ããŸãã
Windows 10ããã³Windows Phone 8.1ã¢ããªã±ãŒã·ã§ã³ã§ã¯ãããã¯ç»é¢ã«ç»é²ããå¿
èŠã¯ãããŸããããã¿ã¹ã¯ãç»é²ããåã«RequestAccessAsyncãåŒã³åºãããšã¯å¿
é ã§ãã
ããã¯ç»é¢ã«ã¢ããªã±ãŒã·ã§ã³ãç»é²ããããã®2ã€ã®ãªãã·ã§ã³ããããŸã-ãããžãšbadgeAndTileTextã ãããžãšããã¹ãä»ããããžã®ã¿ã ãã®ãªãã·ã§ã³ã¯ããããã§ã¹ãã®ã°ã©ãã£ã«ã«ãšãã£ã¿ãŒãšXMLã³ãŒãã®ç·šéã®äž¡æ¹ã§éžæã§ããŸãã ãªãã·ã§ã³ãéžæããããšã«å ããŠããããžã®ç»åãèšå®ããå¿
èŠããããŸã-BadgeLogoïŒ
<uap:VisualElements DisplayName="Background Task example" Square150x150Logo="Assets\Square150x150Logo.png" Square44x44Logo="Assets\Square44x44Logo.png" Description="BGTaskExample" BackgroundColor="transparent"> <uap:LockScreen Notification="badgeAndTileText" BadgeLogo="Assets\BadgeLogo.png" /> <uap:DefaultTile Wide310x150Logo="Assets\Wide310x150Logo.png" ShortName="Background Task example"> </uap:DefaultTile> <uap:SplashScreen Image="Assets\SplashScreen.png" /> </uap:VisualElements>
ãã¡ããããããã§ã¹ãã®ã°ã©ãã£ã«ã«ãšãã£ã¿ãŒã䜿çšãããšããã䟿å©ã§ãã


ã¢ããªã±ãŒã·ã§ã³ãbadgeAndTileTextã¢ãŒãã®ããã¯ç»é¢ã«ç»é²ããã«ã¯ãã¯ã€ãã¿ã€ã«ïŒWideLogoïŒã®ç»åãå«ãŸããŠããããšã確èªããå¿
èŠããããŸãã
ã¢ããªã±ãŒã·ã§ã³ã¯ããããžãæåŸã®ã¿ã€ã«éç¥ã®ããã¹ããããŒã¹ãéç¥ãªã©ã®ããŸããŸãªæ
å ±ãããã¯ç»é¢ã«è¡šç€ºã§ããŸãã ããã«ã¯ç¹å¥ãªã¢ã¯ã·ã§ã³ã¯å¿
èŠãããŸããã
ããã¯ç»é¢ã«ã¯æ倧7ã€ã®ã¢ããªã±ãŒã·ã§ã³ãç»é²ã§ããŸãã ãããŠããã®ãã¡ã®1ã€ã ããåºãã¿ã€ã«ã衚瀺ã§ããŸãã
ããã¯ç»é¢ã«ç»é²ãããŠããã¢ããªã±ãŒã·ã§ã³ã¯ãä»ã®ã¢ããªã±ãŒã·ã§ã³ãšæ¯ã¹ãŠããå€ãã®ç¹æš©ãæã£ãŠããŸãã ããå€ãã®ãªãœãŒã¹ã䜿çšã§ããŸãã
ãŠãŒã¶ãŒã®ããã€ã¹ãããã¯ã°ã©ãŠã³ãã§åžžã«å®è¡äžã®ã¿ã¹ã¯ããããã¬ãŒãããã£ããããããããããªãŒãçéžãããªãããã«ããªãœãŒã¹ã®äœ¿çšã«å¶éãå¿
èŠã§ãã
äŸïŒ
ã¢ããªã±ãŒã·ã§ã³ãããã¯ç»é¢ã«ç»é²ãããŠããå Žåã15åããšã«2ç§ã®CPUæéã䜿çšã§ããŸãã
ã¢ããªã±ãŒã·ã§ã³ãããã¯ç»é¢ã«ç»é²ãããŠããªãå Žåã¯ã2æéããšã«1ç§ã®CPUæéãã䜿çšã§ããŸããã
ãã®ã¢ããªã±ãŒã·ã§ã³ãWindows Phoneçšã®å Žåã15åããšã«2ç§äœ¿çšã§ããŸãã
ããã€ã¹ãACé»æºã«æ¥ç¶ãããŠããããããããªãŒã§é§åãããŠããå Žåããããã¯ãŒã¯ããŒã¿ã䜿çšããããã®ã¯ã©ãŒã¿ãèªåçã«ãªã³ã«ãªããŸãïŒãããã¯ãŒã¯ã€ã³ã¿ãŒãã§ã€ã¹ã§æ¶è²»ããããšãã«ã®ãŒéãç¯çŽããããïŒã
Windows Phoneã§ã¯ãããããªãŒã»ãŒããŒæ©èœããªã³ã®å Žåãããã€ã¹ãå€éšé»æºã«æ¥ç¶ãããŠããããããããªãŒã®å
é»ãç¹å®ã®ã¬ãã«ãããå°ãªãå Žåãããã¯ã°ã©ãŠã³ãã¿ã¹ã¯ã¯éå§ãããŸããã
ãªã³ã¯ã§è©³çŽ°ãèªãïŒ
ããã¯ã°ã©ãŠã³ãã¿ã¹ã¯ã䜿çšããã¢ããªã±ãŒã·ã§ã³ã®ãµããŒãïŒXAMLïŒã¢ããªã±ãŒã·ã§ã³ã®æŽæ°åŸãããã¯ã°ã©ãŠã³ãã¿ã¹ã¯ã®æŽæ°ïŒç»é²è§£é€ããã³åç»é²ïŒãå¿
èŠã«ãªããŸãã åè¿°ã®ServicingCompleteããªã¬ãŒã¯ãã¢ããªã±ãŒã·ã§ã³ã®æŽæ°ã®ç¬éãããã£ãããããã®ã«åœ¹ç«ã¡ãŸãã ãã®ããªã¬ãŒã䜿çšãããšãè¯å¥œãªããŒã³ã®ã«ãŒã«ã«æºæ ããŸãïŒã»ãšãã©äœ¿çšããå¿
èŠããããŸãïŒã
次ã®ããã«ç»é²è§£é€ã§ããŸãã
foreach (var _task in BackgroundTaskRegistration.AllTasks) { if (_task.Value.Name == "My demo task") { _task.Value.Unregister(true); } }
Unregisterã¡ãœããã®å€ãtrueã«èšå®ãããŠããå Žåãããã¯ã°ã©ãŠã³ãã¿ã¹ã¯ã®çŸåšå®è¡äžã®ãã¹ãŠã®ã€ã³ã¹ã¿ã³ã¹ããã£ã³ã»ã«ãããŸãã falseãèšå®ãããŠããå Žåãã¿ã¹ã¯ã«ã¯äœæ¥ãå®äºããæ©äŒãäžããããŸãã
ãšããã§ãã³ã³ãã¥ãŒã¿ãŒãåèµ·åããåŸã§ããããªã¬ãŒã¯æ©èœããŸãã
ããªã¬ãŒã2çªç®ã®ãã©ã¡ãŒã¿ãŒã§åæåããããšãããããOneShotãã©ã¡ãŒã¿ãŒãèšå®ãããŸããããã¯ãããªã¬ãŒã1åã ãå®è¡ãããããè€æ°åå®è¡ããããã瀺ããŸãã äŸïŒ
SystemTrigger taskTrigger = new SystemTrigger(SystemTriggerType.ServicingComplete,false);
ã¢ã¯ã·ã§ã³ã®å°ããªã¬ã€ãBlank AppïŒUniversal WindowsïŒã®ãããªãããžã§ã¯ããäœæããŸã
äœæãããœãªã¥ãŒã·ã§ã³ã«ãWindowsã©ã³ã¿ã€ã ã³ã³ããŒãã³ãïŒãŠãããŒãµã«WindowsïŒãªã©ã®ãããžã§ã¯ãããã1ã€è¿œå ããŸã
æåã®ãããžã§ã¯ãã§ã2çªç®ã®ãããžã§ã¯ãã«ãªã³ã¯ãè¿œå ããŸãã 次ã®æ¹æ³ã§å®è¡ã§ããŸãã
ãœãªã¥ãŒã·ã§ã³ãšã¯ã¹ãããŒã©ãŒã®ãããžã§ã¯ãåã§ãã³ã³ããã¹ãã¡ãã¥ãŒãåŒã³åºãã[è¿œå ] / [è¿œå ]-[åç
§...] / [ãªã³ã¯]ãéžæãããŠã£ã³ããŠã§ã¡ãã¥ãŒãã[ãããžã§ã¯ã]ãéžæãã2çªç®ã®ãããžã§ã¯ãã®åã«

ãã®ãã¡ã€ã«ã§ã¯ãããã¯ã°ã©ãŠã³ããžã§ãã¯ã©ã¹ã³ãŒãã¯æ¬¡ã®ããã«ãªããŸãã
public sealed class ExampleBackgroundTask : IBackgroundTask { public void Run(IBackgroundTaskInstance taskInstance) {
åå空éãè¿œå ããŸãã
using Windows.ApplicationModel.Background;
ç»é²ããåã«ãããªã¬ãŒãæ¢ã«ç»é²ãããŠãããã©ããã確èªããå¿
èŠããããŸããããã§ãªãå Žåãåãããªã¬ãŒã®å€ãã®ç»é²ãååŸããŸãã
foreach (var _task in BackgroundTaskRegistration.AllTasks) { if (_task.Value.Name == "My demo task") { return; } }
ããªã¬ãŒã®åæç»é¢ã§ã®ç»é²ãå¿
èŠãªå Žåãããªã¬ãŒãç»é²ããåã«ãåæ§ã®ã¹ãããããæ¿å
¥ããå¿
èŠããããŸãã
次ã®ãããªããªã¬ãŒãç»é²ã§ããŸãã
TimeTrigger taskTrigger = new TimeTrigger(15, false); var bgTaskBuilder = new BackgroundTaskBuilder(); bgTaskBuilder.Name = "My demo task"; bgTaskBuilder.TaskEntryPoint = "BGTaskMD.ExampleBackgroundTask"; bgTaskBuilder.SetTrigger(taskTrigger);
Completedã€ãã³ãã¯ãã¢ããªã±ãŒã·ã§ã³ãçŸåšå®è¡äžã®å Žåã«çºçããŸãã ã¢ããªã±ãŒã·ã§ã³ãäžæïŒäžæïŒãããŠããçµäºïŒçµäºïŒãããå Žåãã€ãã³ãã¯çºçããŸããã ã¢ããªã±ãŒã·ã§ã³ãäžæåæ¢ããŠããåéãããšãåéåŸã«å®äºãããªã¬ãŒãããŸãã
å®äºã«å ããŠãããã¯ã°ã©ãŠã³ãã¿ã¹ã¯ã®ãã£ã³ã»ã«ïŒãã£ã³ã»ã«æžã¿ïŒãåŠçããå¿
èŠããããŸãã ãã ããã¿ã¹ã¯ã®ç»é²æã«ã§ã¯ãªãããã®å®è£
ãã€ãŸãWinMDãã¡ã€ã«ã®ã¯ã©ã¹ã§åŠçãããŸãã
public sealed class ExampleBackgroundTask : IBackgroundTask { volatile bool _cancelRequested = false; public void Run(IBackgroundTaskInstance taskInstance) { taskInstance.Canceled += new BackgroundTaskCanceledEventHandler(OnCanceled);
ããã¯ã°ã©ãŠã³ãã¿ã¹ã¯äžã«éåæã³ãŒããå®è¡ãããå Žåãã¢ããªã±ãŒã·ã§ã³ãäžæãããå Žåã«ã³ãŒããæ£ããå®äºããã«ã¯ãdefferalã䜿çšããŸãã ãã®å ŽåãRunã¡ãœããã¯æ¬¡ã®ããã«ãªããŸãã
public void Run(IBackgroundTaskInstance taskInstance) { BackgroundTaskDeferral _deferral = taskInstance.GetDeferral(); await someAsyncTask(); _deferral.Complete(); }
ã·ã¹ãã ã«å¹²æžããªãçãã¿ã¹ã¯ãäœæããããšããå§ãããŸãã
ããã¯ã°ã©ãŠã³ãã¿ã¹ã¯ã®å®è¡äžã«ãããã»ã¹ã¹ããŒã¿ã¹å€ãèšå®ïŒWindows.Storage.ApplicationData.Current.LocalSettingsïŒã«æžã蟌ã¿ãå¿
èŠã«å¿ããŠèªã¿åãããšãã§ããŸãã
ãŠãŒã¶ãŒã®æäœã¯ããã¯ã°ã©ãŠã³ãã¿ã¹ã¯ã§ã¯äœ¿çšãããŸããã ããã¯ã°ã©ãŠã³ãã¿ã¹ã¯ã³ãŒãããã®éç¥ãã¿ã€ã«ãããã³ã€ãã³ãã€ã³ãžã±ãŒã¿ãŒã®æŽæ°ãé€ãããŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹èŠçŽ ãæŽæ°ããããšã¯ãå§ãããŸããã
ããã¯ã°ã©ãŠã³ãã¿ã¹ã¯ã®ãããã°ã¯ãããªã¬ãŒã«ãã£ãŠããªã¬ãŒãããã€ãã³ãã«ã³ããããããããã¬ãŒã¹ããããMaintenanceTriggerãTimeTriggerãæ©èœãããŸã§15å以äžåŸ
æ©ããããããšãéå±ãªã¿ã¹ã¯ã«ãªããªã¹ã¯ããããŸãïŒéçºè
ã®äžã«ã¯ããã®ãããªãããã°ã倢èŠãŠãã人ãããã§ãããïŒã
VSãããªã¬ãŒãåŒã³åºãããšãã§ããããã«ããã«ã¯ãããã¯ã°ã©ãŠã³ããžã§ãã®ã³ãŒããã¡ã¿ããŒã¿ãã¡ã€ã«WinMDã«ç§»åããå¿
èŠããããŸãã ãã®ããããããã°æã«ã¯ãã¢ããªã±ãŒã·ã§ã³ã©ã€ããµã€ã¯ã«ã€ãã³ãã§ããã¯ã°ã©ãŠã³ãã¿ã¹ã¯ã確èªã§ããŸãã

ãããæ©èœããã«ã¯ãããã¯ã°ã©ãŠã³ãã¿ã¹ã¯ãæ¢ã«ç»é²ãããŠãããèµ·åãåŸ
æ©ããŠããå¿
èŠããããŸãã
OneShotãã©ã¡ãŒã¿ãŒã䜿çšããŠããã¯ã°ã©ãŠã³ãã¿ã¹ã¯ãç»é²ãããšãåäœåŸãVisual Studioãä»ããã¿ã¹ã¯ã®ãããã°ã¯å©çšã§ããªããªããŸãã
Visual Studioãä»ãããããã°ã¯ãControlChannelTriggerãPushNotificationTriggerãªã©ã®ããªã¬ãŒãããã³SystemTriggerãããªã¬ãŒã¿ã€ãSmsReceivedã§äœ¿çšããããã¯ã°ã©ãŠã³ãã¿ã¹ã¯ã§ã¯äœ¿çšã§ããŸããã
GitHubã§TimeTriggerãšServicingCompleteã®ãµã³ãã«å®è£
ãèŠã€ããããšãã§ããŸã
ã€ã³ã¿ãŒãããã§ã®äœæ¥ã«é¢ããŠã¯ãããã¯ã°ã©ãŠã³ããžã§ãã¯å€§èŠæš¡ãªããŒã¿ããŠã³ããŒãæäœçšã§ã¯ãããŸããã ãã ãããã¥ãŒã¹ã®æŽæ°ãã€ãã³ãã®ç£èŠãªã©ã«ã¯äŸ¿å©ã§ãã 倧ããªãã¡ã€ã«ãããŠã³ããŒãããå Žåã¯ã
BackgroundDownloaderã¯ã©ã¹ã䜿çšããå¿
èŠããããŸãã
åçŽãªããŒã¿èªã¿èŸŒã¿ã®äŸãèããŠã¿ãŸãããã
using Windows.Networking.BackgroundTransfer; using Windows.Storage;
æåŸã«ããããã¯ãããããŸã§åé€ãããŠãããšããŠããå°ããªãªãœãŒã¹ã®ããŠã³ããŒããå«ãçæçãªæäœã«ã¯ã
Windows.Web.Httpåå空éã䜿çšã§ãããã䜿çšããå¿
èŠãããããšãè¿œå ããŸãã
var uri = new Uri("http://habrahabr.ru/post/264199/"); var httpClient = new HttpClient(); try