Фоновое приложение, запускающее другое фоновое приложение

У меня есть Raspberry Pi 3 с ядром Windows 10 IOT с запущенным на нем фоновым приложением1 (BGA1).

Могу ли я запустить другое фоновое приложение 2 (BGA2) с BGA1? и отделить BGA2 от BGA1?


person Bent sunesen Mortensen    schedule 24.08.2018    source источник


Ответы (2)


Нет, ты не можешь. Фоновые приложения:

запускаться при запуске компьютера и работать непрерывно без каких-либо ограничений на использование ресурсов управления временем жизни процесса

Таким образом, все фоновые приложения запускаются при запуске машины. И они контролируют свое время жизни (выбирая выход), но никто другой не может напрямую его отключить.

person Damien_The_Unbeliever    schedule 24.08.2018
comment
Спасибо за быстрый ответ. - person Bent sunesen Mortensen; 27.08.2018

Возможно, Портал устройств Windows IoT Core 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);
        }
    }
}

Вы можете получить полное имя пакета на портале устройств или в Visual Studio после завершения развертывания.

введите здесь описание изображения

введите здесь описание изображения

person Rita Han    schedule 27.08.2018