Silverlight Windows Phone 8.1 live互动程序后台任务

Silverlight Windows Phone 8.1 live互动程序后台任务,silverlight,windows-runtime,windows-phone,live-tile,windows-phone-8.1,Silverlight,Windows Runtime,Windows Phone,Live Tile,Windows Phone 8.1,我有一个Windows Phone 8应用程序,最近升级到了8.1 Silverlight。我想使用新的瓷砖模板。现在我有一个ScheduledTaskAgent,它使用ShellTile 为了使用新的实时互动程序,我在WMAppManifest.xml中将通知服务更改为WNS。我删除了注册旧后台任务的代码,并添加了以下代码: var backgroundAccessStatus = await BackgroundExecutionManager.RequestAccessAsync(); i

我有一个Windows Phone 8应用程序,最近升级到了8.1 Silverlight。我想使用新的瓷砖模板。现在我有一个ScheduledTaskAgent,它使用ShellTile

为了使用新的实时互动程序,我在WMAppManifest.xml中将通知服务更改为WNS。我删除了注册旧后台任务的代码,并添加了以下代码:

var backgroundAccessStatus = await BackgroundExecutionManager.RequestAccessAsync();
if (backgroundAccessStatus == BackgroundAccessStatus.AllowedMayUseActiveRealTimeConnectivity ||
    backgroundAccessStatus == BackgroundAccessStatus.AllowedWithAlwaysOnRealTimeConnectivity)
{
    foreach (var task in BackgroundTaskRegistration.AllTasks)
    {
        if (task.Value.Name == "LiveTileBackgroundTask")
        {
            task.Value.Unregister(true);
        }
    }

    BackgroundTaskBuilder taskBuilder = new BackgroundTaskBuilder();
    taskBuilder.Name = "LiveTileBackgroundTask";
    taskBuilder.TaskEntryPoint = "BackgroundTasks.LiveTileBackgroundTask";
    taskBuilder.SetTrigger(new TimeTrigger(15, false));
    var registration = taskBuilder.Register();
}
我创建了一个名为
BackgroundTasks
的Windows Phone 8.1 Windows运行时组件,其中包含一个名为
LiveTileBackgroundTask
的BackgroundTask:

public sealed class LiveTileBackgroundTask : IBackgroundTask
{
    public void Run(IBackgroundTaskInstance taskInstance)
    {
        BackgroundTaskDeferral deferral = taskInstance.GetDeferral();

        const string xml = "<tile>"
                           + "<visual>"
                           +  "<binding template='TileWideText01'>"
                           +   "<text id='1'>Text Field 1 (larger text)</text>"
                           +   "<text id='2'>Text Field 2</text>"
                           +   "<text id='3'>Text Field 3</text>"
                           +   "<text id='4'>Text Field 4</text>"
                           +   "<text id='5'>Text Field 5</text>"
                           +  "</binding>  "
                           + "</visual>"
                           +"</tile>";

        XmlDocument doc = new XmlDocument();
        doc.LoadXml(xml);

        TileNotification tileNotification = new TileNotification(doc);
        TileUpdateManager.CreateTileUpdaterForApplication().Update(tileNotification);

        deferral.Complete();
    }
}
公共密封类LiveTileBackgroundTask:IBackgroundTask
{
公共无效运行(IBackgroundTaskInstance taskInstance)
{
BackgroundTaskDeleral deleral=taskInstance.getDeleral();
常量字符串xml=“”
+ ""
+  ""
+“文本字段1(大文本)”
+“文本字段2”
+“文本字段3”
+“文本字段4”
+“文本字段5”
+  "  "
+ ""
+"";
XmlDocument doc=新的XmlDocument();
doc.LoadXml(xml);
TileNotification TileNotification=新TileNotification(doc);
TileUpdateManager.CreateTileUpdateForApplication().Update(tileNotification);
延迟。完成();
}
}
我在Windows Phone项目中添加了对此程序集的引用

我还在我的Package.appxmanifest中添加了一个后台任务声明,该声明以
BackgroundTasks.LiveTileBackgroundTask
作为入口点。我选择计时器和系统事件作为支持的任务类型

但当我运行应用程序时,什么也没发生。不显示活动磁贴。我完成了后台任务,一切顺利,没有任何例外

Silverlight 8.1不支持连续后台执行 应用程序

Windows Phone 8应用程序可以在启动后继续在后台运行 在某些情况下,用户导航离开应用程序。这 此功能不适用于Silverlight 8.1应用程序。如果你需要这个 功能,您应该继续使用Windows Phone 8应用程序。更多 有关详细信息,请参阅在后台运行位置跟踪应用程序 WindowsPhone8

Windows Phone 8.1 Windows运行时组件只能与Windows Phone 8.1运行时(商店)应用程序一起使用

Silverlight 8.1不支持连续后台执行 应用程序

Windows Phone 8应用程序可以在启动后继续在后台运行 在某些情况下,用户导航离开应用程序。这 此功能不适用于Silverlight 8.1应用程序。如果你需要这个 功能,您应该继续使用Windows Phone 8应用程序。更多 有关详细信息,请参阅在后台运行位置跟踪应用程序 WindowsPhone8

Windows Phone 8.1 Windows运行时组件只能与Windows Phone 8.1运行时(商店)应用程序一起使用

如果您说“没有实时互动程序出现”。您发布的代码不会创建活动磁贴-它只是更新一个。您必须手动锁定它-无法通过代码锁定主磁贴

如果这不是问题的话,也许你不是在看宽瓷砖?此模板适用于宽平铺,因此方形平铺不会因此更新。我建议使用图书馆。它最初用于Windows应用商店应用程序,但我认为它也适用于WP。(我使用过它,但只是为了测试,不是为了真实,所以可能会有问题。)它允许您轻松地为宽瓷砖和方形瓷砖指定模板和参数

最后,要获得宽平铺,必须手动编辑Package.appxmanifest文件。必须将Wide310x150Logo属性添加到DefaultTile元素

这就是我所能想到的。希望能有所帮助。

您说“没有显示活动磁贴”。您发布的代码不会创建活动磁贴-它只是更新一个。您必须手动锁定它-无法通过代码锁定主磁贴

如果这不是问题的话,也许你不是在看宽瓷砖?此模板适用于宽平铺,因此方形平铺不会因此更新。我建议使用图书馆。它最初用于Windows应用商店应用程序,但我认为它也适用于WP。(我使用过它,但只是为了测试,不是为了真实,所以可能会有问题。)它允许您轻松地为宽瓷砖和方形瓷砖指定模板和参数

最后,要获得宽平铺,必须手动编辑Package.appxmanifest文件。必须将Wide310x150Logo属性添加到DefaultTile元素


这就是我所能想到的。希望有帮助。

这不是问题所在。它不是一个“连续的后台”任务,它只是一个应该定期执行的普通后台任务。它就是这样做的,但互动程序不会得到更新。如果它不兼容,它就无法编译。我应该能够在WP8.1 Silverlight中使用新的tile模板,但我不认为它们可以与旧的ScheduledTaskAgent一起使用。在批评之前,最好先阅读链接中的内容,然后再看下一段。您已将旧ScheduledTaskAgent升级到8.1?从一个事实开始​​正在为Windows Phone Silverlight 8.1应用程序使用Windows Phone 8.1运行时组件。。。同样的“我想使用新的平铺模板”,它只适用于RT平台而不适用于Silverlight,“它只适用于RT平台而不适用于Silverlight”->抱歉,但事实并非如此。微软内部多人明确确认WP8.1 SL可以使用新的磁贴模板。事实并非如此。它不是一个“连续的后台”任务,它只是一个应该定期执行的普通后台任务。它就是这样做的,但互动程序不会得到更新。如果是w