Windows Phone Silverlight 8.1&BACKGROUNDTSASKHOST.EXE已退出代码1(0x1)'

时间:2015-03-09 14:47:47

标签: c# silverlight windows-phone-8.1

我想为我的Windows Phone应用程序创建一个计划任务代理。我跟着这个link。但似乎背景任务错误地退出了。以下是一些细节:

  1. 我的解决方案中有两个项目:TestApp (Windows Phone Silverlight 8.1)ScheduledTaskAgent1 (Windows Phone Silverlight 8.1)
  2. 我添加了ScheduledTaskAgent1作为TestApp的参考。
  3. 我已将以下代码添加到WMAppManifest.xml中的TestApp

    <Tasks>
      <DefaultTask Name ="_default" NavigationPage="MainPage.xaml" ActivationPolicy="Resume"/>
      <ExtendedTask Name="BackgroundTask">
        <BackgroundServiceAgent Specifier="ScheduledTaskAgent" Name="ScheduledTaskAgent1" Source="ScheduledTaskAgent1" Type="ScheduledTaskAgent1.ScheduledAgent" />
      </ExtendedTask>
    </Tasks>
    
  4. 在我MainPage.xaml.cs的{​​{1}}中,我有以下代码:

    TestApp
  5. 在我private async void StartPeriodicTask() { periodicTask = ScheduledActionService.Find(periodicTaskName) as PeriodicTask; if (periodicTask != null) { try { ScheduledActionService.Remove(periodicTaskName); } catch (System.Exception) { } } periodicTask = new PeriodicTask(periodicTaskName); periodicTask.Description = "Lock Screen Image Changing Task"; periodicTask.ExpirationTime = DateTime.Now.AddDays(14); try { ScheduledActionService.Add(periodicTask); System.Diagnostics.Debug.WriteLine("Periodic task added."); #if(DEBUG_AGENT) System.Diagnostics.Debug.WriteLine("Starting debugging"); ScheduledActionService.LaunchForTest(periodicTaskName, TimeSpan.FromSeconds(15)); System.Diagnostics.Debug.WriteLine("Periodic task is started: " + periodicTaskName); #endif } catch (InvalidOperationException e) { if (e.Message.Contains("BNS Error: The action is disabled")) { MessageBox.Show("Background agents for this application have been disabled by the user."); } } catch (SchedulerServiceException) { System.Diagnostics.Debug.WriteLine("Periodic task added failed."); } } /* void StartPeriodicTask() */ 的{​​{1}}中,我有以下简单代码:

    ScheduledAgent.cs

    ScheduledTaskAgent1中的其他代码保持不变,因为它是由VS2013自动创建的。

  6. 在我启动程序并调用protected override void OnInvoke(ScheduledTask task) { System.Diagnostics.Debug.WriteLine("Background task accomplished."); NotifyComplete(); } /* OnInvoke() */ 后,我得到了这些输出:

    ScheduledAgent.cs

    最后两行显示调用StartPeriodicTask()方法,但任务错误地退出。

  7. 那么,如何正确退出后台任务呢?

    任何回复都将不胜感激。

0 个答案:

没有答案