0

이 항목 (Detecting reboot programmatically in Windows Phone 8.1)을 따라 재부팅 또는 장치 시작을 감지해야하지만 제 경우에는 취소 된 메서드가 백그라운드 작업에서 호출되지 않습니다. 내가 디버그를 시작장치 검색시기 또는 Windows Phone 8.1에서 시작

가, 내 방법에 의해 시간대의 변화를 강요 한 후 호출됩니다

builder.SetTrigger(new SystemTrigger(SystemTriggerType.TimeZoneChange, false)); 

내 백그라운드 작업은 다음과 같습니다

public void Run(IBackgroundTaskInstance taskInstance) 
     { 
      BackgroundTaskDeferral defferal = taskInstance.GetDeferral(); 
      taskInstance.Canceled += TaskInstance_Canceled; 
      defferal.Complete(); 
     } 

     private async void TaskInstance_Canceled(IBackgroundTaskInstance sender, BackgroundTaskCancellationReason reason) 
     { 
      BackgroundTaskDeferral defferal = sender.GetDeferral(); 
      try 
      { 
       StorageFolder localFolder = Windows.Storage.ApplicationData.Current.LocalFolder; 
       await localFolder.CreateFileAsync("bruno.txt", CreationCollisionOption.OpenIfExists); 

      } 
      catch (Exception e) 
      { 
       Debug.WriteLine("Fail to create File test: " + e); 
      } 

      defferal.Complete(); 
     } 

나는 때문에, 즉 호출되지 않습니다 알고 다음 루틴은 항상 false입니다 (앱이 MainPage 메소드를 시작할 때 작동합니다) :

답변

0

이 문제에서 몇 시간을 사용한 후에 Windows Phone에 시스템 트리거가 있습니다. 장치가 부팅 될 때 호출되는 이름은 SessionConnected입니다.

따라서, 간단한 변경만을 필요

builder.SetTrigger (새 SystemTrigger (SystemTriggerType.SessionConnected는 false));

관련 문제