将参数传递给IBackgroundTask

时间:2012-11-13 15:08:55

标签: c# windows-8 windows-store-apps

我正在为windows rt实现一个Windows应用商店应用程序。它使用backgroundtask来更新其tile。我希望能够配置后台任务和应用程序在执行工作时使用相同的URL,因此我想使用统一或集中配置。现在我使用一些* .resw文件来配置我的Windows应用商店应用程序中的某些方面。如何将此配置传递给后台任务?

2 个答案:

答案 0 :(得分:2)

最简单的方法是使用ApplicationData.Current.LocalSettings 这是我在我的应用程序中使用的包装器示例:

  public class SettingsService
    {

        private readonly ApplicationDataContainer _container;

        public SettingsService()
        {
            var localSettings = ApplicationData.Current.LocalSettings;

            if (!localSettings.Containers.ContainsKey("AppSettings"))
            {
                _container = localSettings.CreateContainer("AppSettings", ApplicationDataCreateDisposition.Always);
            }
            else
            {
                _container = localSettings.Containers["AppSettings"];
            }
        }

     private T GetValue<T>(string key, T @default)
        {

            if (_container.Values.ContainsKey(key))
            {
                return (T)_container.Values[key];
            }

            return @default;
        }

        private void SetValue(string key, object value)
        {
            if (!_container.Values.ContainsKey(key))
            {
                _container.Values.Add(key, value);
            }
            else
            {
                _container.Values[key] = value;
            }

        }

       //Any setting
   public bool IsFirstLaunch
    {
        get { return GetValue("IsFirstLaunch", true); }
        set { SetValue("IsFirstLaunch", value); }
    }
}

答案 1 :(得分:1)

奇怪的是,我在一个不同的主题中回答了我自己的问题

Using app resw file from background task