【问题标题】:Background application that start another background application启动另一个后台应用程序的后台应用程序
【发布时间】:2019-01-30 23:27:21
【问题描述】:

我有一个运行 windows 10 IOT 核心的 Raspberry Pi 3,上面运行着一个 backgroundapplication1(BGA1)。

我可以从 BGA1 启动另一个 backgroundapplication2(BGA2) 吗?并从 BGA1 终止 BGA2 ?

【问题讨论】:

    标签: c# .net-core windows-10-iot-core background-application


    【解决方案1】:

    不,你不能。 Background Applications:

    在机器启动时启动并连续运行,没有任何进程生命周期管理资源使用限制

    所以所有后台应用程序都在机器启动时启动。他们控制自己的生命周期(通过选择退出),但没有其他人可以直接关闭它。

    【讨论】:

    • 感谢您的快速回答。
    【解决方案2】:

    也许Windows IoT Core Device Portal REST API 有帮助。

    以下是从另一个后台应用程序启动一个后台应用程序的简单代码示例:

    namespace BackgroundApplicationStarter
    {
        public sealed class StartupTask : IBackgroundTask
        {
            public void Run(IBackgroundTaskInstance taskInstance)
            {
                var deferral = taskInstance.GetDeferral();     
    
                StartApp();
            }
    
            private async void StartApp()
            {
                string fullPackageNameEncoded = System.Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes("BackgroundApplication1234-uwp_1.0.0.0_arm__a48w6404kk2ea"));
    
                Uri endpoint = new Uri("http://127.0.0.1:8080/api/iot/appx/app?appid=" + fullPackageNameEncoded);
    
                var client = new System.Net.Http.HttpClient();
                var byteArray = Encoding.ASCII.GetBytes("[insert your user name]:[insert your user password]");
                client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("basic", Convert.ToBase64String(byteArray));
    
                HttpContent content = new StringContent("", Encoding.UTF8);
                System.Net.Http.HttpResponseMessage response = await client.PostAsync(endpoint, content);
                HttpContent responseContent = response.Content;
    
                Debug.WriteLine("Response StatusCode: " + (int)response.StatusCode);
            }
        }
    }
    

    完成部署后,您可以从 Device Portal 或 Visual Studio 获取完整的包名称。

    【讨论】:

      猜你喜欢
      • 2017-12-06
      • 1970-01-01
      • 2018-06-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多