Триггер фоновой задачи UWP для событий питания

У меня есть приложение UWP, которому необходимо выполнять задачу журнала для каждого запуска/возобновления/приостановки/выключения системы.

Есть ли способ выполнить эту задачу с помощью фоновой задачи? Из документов MS не видно, своего рода триггер для таких событий.

В настоящее время у меня есть служба, которая делает это, и доступ к службе из UWP может быть выполнен, но служба не будет упакована вместе с приложением UWP, поэтому сейчас это может быть не лучшим решением.


person Jer Yango    schedule 03.10.2019    source источник
comment
вы можете поймать событие start/resume/suspend/shutdown в файле app.xaml.cs, поэтому вам просто нужно создать службу, через которую вы можете добавить текущий журнал приложений   -  person    schedule 03.10.2019
comment
вы можете перейти по этой ссылке, в которой вы можно увидеть жизненный цикл приложения UWP. для запуска вам просто нужно скопировать событие OnLaunched из заданного link и вставьте его в файл app.xaml.cs. Теперь вызовите свою службу в событии OnLaunched, которое может добавить состояние запуска приложения в базу данных. сделать то же самое для других событий.   -  person    schedule 03.10.2019
comment
@ketan Я понимаю, что этот жизненный цикл предназначен для самого приложения UWP. Но то, что я хочу слушать, - это больше о событиях питания системы (например, выключение компьютера, перевод его в спящий режим и т. д.).   -  person Jer Yango    schedule 04.10.2019
comment
Как вы сказали, похоже, что для таких событий нет триггера, поэтому, если вы хотите выполнить фоновую задачу, это невозможно.   -  person Faywang - MSFT    schedule 07.10.2019


Ответы (1)


Я не уверен в том, что вы просите, но если вы просто хотите выполнить фоновую задачу, вы можете использовать:

using System.Threading;

namespace yourNamespace
{
    static class Program
    {
        static void main()
        {
            Thread thread = new thread(Task);
            thread.Start();
        }

        private void Task()
        {
            //What you want to do
        }
    }
}
person Mrproex    schedule 03.10.2019
comment
Извините, я имел в виду внепроцессную фоновую задачу UWP. Он выполняется в отдельном процессе, чем процесс вашего приложения. - person Jer Yango; 03.10.2019
comment
Если вы хотите иметь отдельный процесс, почему вы просто не создали новое приложение, которое принимает аргументы и выполняет задачу, которую вы хотите выполнить? Затем запустите новое приложение из основного? - person Mrproex; 03.10.2019
comment
Проблема в том, что мой UWP не должен быть открыт все время (следовательно, запускает фоновую задачу с определенным триггерным событием). Нативные приложения UWP не могут иметь невидимых окон, поэтому я надеюсь найти способ перехватывать эти события питания системы в фоновой задаче вне процесса. Эти фоновые задачи регистрируются в системе и будут выполняться все время, даже если приложение закрыто. - person Jer Yango; 04.10.2019