我有一個Windows Phone 8應用程序,我最近升級到8.1 Silverlight。我想使用新的圖塊模板。現在我有一個使用ShellTile的ScheduledTaskAgent。Windows Phone 8.1活動平鋪後臺任務
爲了使用新的實時切片,我在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();
}
我創建了Windows Phone 8.1的Windows運行時組件稱爲BackgroundTasks
包含BackgroundTask稱爲LiveTileBackgroundTask
:
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();
}
}
我加在我的Windows Phone項目中對此程序集的引用。
我還在我的Package.appxmanifest中添加了後臺任務聲明,它具有BackgroundTasks.LiveTileBackgroundTask
作爲入口點。我選擇了定時器和系統事件作爲支持的任務類型。
當我運行應用程序,但沒有任何反應。不顯示活動磁貼。我跑過後臺任務,一切都順利,沒有任何例外。
嗨,你嘗試只更新前景瓷磚而不是後臺任務?我問的原因是因爲我甚至無法在前臺更新磁貼... –
嗨,我試過了,它也沒有工作。 –
請看看這一個http:// stackoverflow。com/questions/23589479/new-live-tiles-dont-work-in-windows-phone-silverlight-8-1-apps –