【问题标题】:UWP Background Task Trigger for Power Events电源事件的 UWP 后台任务触发器
【发布时间】:2019-10-03 09:26:28
【问题描述】:

我有一个 UWP 应用程序,它需要为每个系统启动/恢复/挂起/关闭执行日志任务。

有没有办法可以通过后台任务来完成这项任务? 从MS documents 来看,似乎没有触发此类事件的方式。

我目前有一个执行此操作的服务,并且可以从 UWP 访问该服务,但该服务不会与 UWP 应用程序一起打包,因此它可能不是目前最好的解决方案。

【问题讨论】:

  • 您可以在app.xaml.cs文件中捕获启动/恢复/挂起/关闭事件,因此您只需要创建一个可以添加当前应用程序日志的服务
  • 你可以参考这个link,在里面你可以看到UWP应用的生命周期。对于启动,您只需从给定的link 复制 OnLaunched 事件并将其粘贴到 app.xaml.cs 文件中。现在在 OnLaunched 事件中调用您的服务,这可以将应用程序启动状态添加到数据库。对其他事件做同样的事情。
  • @ketan 我知道这个生命周期是针对 UWP 应用程序本身的。但我想听的更多的是系统电源事件(即关闭计算机、使其进入睡眠状态等......)
  • 如您所说,此类事件似乎没有什么触发器,所以如果您想通过后台任务来实现,那是不可行的。

标签: c# uwp triggers background-task


【解决方案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
        }
    }
}

【讨论】:

  • 对不起,我的意思是 UWP 进程外后台任务。它在与您的应用进程不同的进程中运行。
  • 如果你想有一个单独的进程,为什么不创建一个新的应用程序来接受参数并执行你想做的任务?然后从您的主要应用程序执行新应用程序?
  • 问题是我的 UWP 不应该一直打开(因此,运行具有特定触发事件的后台任务)。原生 UWP 应用程序不能有不可见的窗口,这就是为什么我希望找到一种方法来在进程外后台任务中捕获这些系统电源事件。这些后台任务会注册到系统中,即使应用关闭也会一直运行。
猜你喜欢
  • 2017-07-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多