后台任务 UWP - 使用数据传递对象

Posted

技术标签:

【中文标题】后台任务 UWP - 使用数据传递对象【英文标题】:Background Task UWP - Pass Object with Data 【发布时间】:2016-04-01 11:13:39 【问题描述】:

我需要传递一个包含一些信息的对象,以便在我的后台任务中使用。我尝试在网上搜索,但没有找到任何解决方案。有可能吗?

一种解决方法是保存我需要在 MainProjet 中的隔离存储中传递的信息,并在我的 BackgroundTask 项目中使用之前保存的信息。但是这个解决方案使用起来并不美观。

有人帮帮我吗?

提前致谢

【问题讨论】:

除了具有与 UI 通信能力的媒体播放器之外,答案将是 similar as to this question - 您将不得不使用某种代理。 【参考方案1】:

你可以使用 SendMessageToBackground 方法

  var message = new ValueSet();
                    message.Add("key",value);
                    BackgroundMediaPlayer.SendMessageToBackground(message);

在后台任务中监听这个方法

public void Run(IBackgroundTaskInstance taskInstance)
   
   BackgroundMediaPlayer.MessageReceivedFromForeground += BackgroundMediaPlayer_MessageReceivedFromForeground;
    

  private void BackgroundMediaPlayer_MessageReceivedFromForeground(object sender, MediaPlayerDataReceivedEventArgs e)
        
            foreach (string key in e.Data.Keys)
            
                switch (key.ToLower())
                
                
            
        

【讨论】:

但这仅适用于 MediaPlayer,其他 BTask 需要某种代理。 @archana,我的后台任务只更新动态磁贴。与witd媒体播放器无关。谢谢

以上是关于后台任务 UWP - 使用数据传递对象的主要内容,如果未能解决你的问题,请参考以下文章

UWP:为啥我的后台任务(使用 TimeTrigger)会超出 CPU 配额?

UWP FileWatcher 后台任务

UWP:请求启动后台任务时出错

如何在 UWP 后台任务中使用 XAML UI 元素?

后台任务不在 UWP 中运行

处理来自后台任务的 toast 通知动作触发器 - UWP