通用Metro应用程序和后台任务

本文关键字:后台任务 应用程序 Metro 通用 | 更新日期: 2023-09-27 18:26:35

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

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

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

有没有一种方法可以制作一个在后台执行某些业务逻辑的通用Windows(Phone)应用程序,而不会复制代码或失去共享项目的优势?

编辑:这是当我把它放在一个单独的项目中时调用的代码。当我把它放在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();
        }
    }
}

通用Metro应用程序和后台任务

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

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

#if WINDOWS_PHONE_APP
//  Code Here
#endIf