【问题标题】:Background Agents in Windows phone 8.1 (Silverlight )Windows phone 8.1 (Silverlight) 中的后台代理
【发布时间】:2014-11-14 15:55:14
【问题描述】:

我正在关注 this link 在 WP 8.1 Silverlight 中实施 ScheduledAgent。

步骤:-

编辑WMAppManifest.xaml

<Tasks>
  <DefaultTask Name="_default" NavigationPage="/View/StartPage.xaml" />
  <ExtendedTask Name="BackgroundTask">
    <BackgroundServiceAgent Specifier="ScheduledTaskAgent" Name="ScheduledTaskAgent2" Source="ScheduledTaskAgent2" Type="ScheduledTaskAgent2.ScheduledAgent" />
  </ExtendedTask>
</Tasks>

添加了目标版本 8.1 的新 ScheduledAgent 项目。 :

现在是我的 ScheduledAgent 类

#define DEBUG_AGENT
using System;
using System.Diagnostics;
using System.Windows;
using Microsoft.Phone.Scheduler;
using Microsoft.Phone.Shell;

namespace ScheduledTaskAgent2
{
    public class ScheduledAgent : ScheduledTaskAgent
    {

         protected override void OnInvoke(ScheduledTask task)
         { 

#if DEBUG_AGENT
            ScheduledActionService.LaunchForTest(task.Name, TimeSpan.FromSeconds(60));
#endif
            NotifyComplete();         

          }
    }
}

我的启动代理的代码

public const string PeriodicTaskName = "ScheduledTaskAgent2";
private PeriodicTask _periodicTask;

    private void StartPeriodicAgent()
    {
        _isPeriodicTaskStarted = true;

        _periodicTask = ScheduledActionService.Find(PeriodicTaskName) as PeriodicTask;

        if (_periodicTask != null)
        {
            RemoveAgent(PeriodicTaskName);
        }

        _periodicTask = new PeriodicTask(PeriodicTaskName) {Description = "periodic task."};

        try
        {
            ScheduledActionService.Add(_periodicTask);

#if(DEBUG_AGENT)
            ScheduledActionService.LaunchForTest(PeriodicTaskName, TimeSpan.FromSeconds(60));
#endif
         }
         catch (Exception exception){ }
    }         

    private static void RemoveAgent(string name)
    {
       try
       {
           ScheduledActionService.Remove(name);
       }
       catch (Exception){}
    }

现在这就是我为后台代理尝试的所有内容。这不是调用OnInvoke() 方法(至少在调试模式下)

注意:我还添加了对 ScheduledTaskAgent2 项目的引用。

有人在 WP 8.1 (Silverlight) 中实现了 ScheduleAgent

完全支持吗?

【问题讨论】:

    标签: c# silverlight scheduled-tasks windows-phone-8.1


    【解决方案1】:

    我得到了解决方案 这是完全有效的解决方案,只需复制粘贴即可。虽然无法直接从文档中获取它。只需将此扩展名添加到您的 Package.appxmanifest 文件中即可。您可以通过right click =&gt; viewcode 选项打开它。

     <Extension Category="windows.backgroundTasks" EntryPoint="AgHost.BackgroundTask">
          <BackgroundTasks>
            <Task Type="systemEvent"  />
            <Task Type="timer"/>
          </BackgroundTasks>
        </Extension>
    

    【讨论】:

    • 你救了我们的命!我们在这里遇到了同样的问题,我们发现入口点是错误的。有了这个入口点,我们现在就可以调试了。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    • 2014-11-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多