Universal Metro应用程序和后台任务

时间:2014-10-15 18:56:22

标签: c# windows-phone-8.1 win-universal-app

如何从共享项目中调用代码以在Windows Phone项目的后台运行?

要在WP后台运行代码,我需要将其提取到一个新项目并从我的WP项目中调用该新项目。但要运行代码,我需要:

  • 将逻辑提取到后台项目中(但后来我失去了共享项目的优势)
  • 复制代码

有没有办法制作一个在后台执行某些业务逻辑的通用Windows(电话)应用程序,没有复制代码或失去共享项目的优势?

编辑: 这是当我将它放在一个单独的项目中时调用的代码。当我把它放在WP项目或共享项目中时,它不会被调用。

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Text;
using Windows.ApplicationModel.Background;

namespace WindowsPhoneProject
{
    public sealed class BackgroundTask : IBackgroundTask
    {
        public void Run(IBackgroundTaskInstance taskInstance)
        {
            taskInstance.GetDeferral().Complete();
        }
    }
}

1 个答案:

答案 0 :(得分:1)

本快速入门介绍如何为通用应用程序创建后台任务: http://msdn.microsoft.com/en-us/library/windows/apps/xaml/hh977055.aspx

您应该能够在共享项目中创建从IBackgroundTask派生的类。如果您只想在手机上创建后台任务,那么您可以使用如下编译时指令:

#if WINDOWS_PHONE_APP
//  Code Here
#endIf