Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Windows Phone 8.1中时间触发后从后台任务唤醒/启动MainApp_C#_Windows Phone 8.1_Win Universal App_Background Task - Fatal编程技术网

C# Windows Phone 8.1中时间触发后从后台任务唤醒/启动MainApp

C# Windows Phone 8.1中时间触发后从后台任务唤醒/启动MainApp,c#,windows-phone-8.1,win-universal-app,background-task,C#,Windows Phone 8.1,Win Universal App,Background Task,下面是我的场景:我在同一个解决方案中有一个Windows Phone 8.1应用程序(MainApp)、一个类库和一个Windows运行时组件(BackgroundTask) 当我加载我的应用程序时,我注册了一个TimeTriggerBackgroundTask,然后操作系统会处理这个问题。任务有两个事件,Run方法(在任务本身内部)和任务完成后在类库中收到的TaskCompleted回调。当应用程序位于前台或后台时,将执行这两个事件。 当应用程序关闭时,BackgroundTask仍然在那里,

下面是我的场景:我在同一个解决方案中有一个Windows Phone 8.1应用程序(MainApp)、一个类库和一个Windows运行时组件(
BackgroundTask
) 当我加载我的应用程序时,我注册了一个
TimeTrigger
BackgroundTask
,然后操作系统会处理这个问题。任务有两个事件,
Run
方法(在任务本身内部)和任务完成后在类库中收到的
TaskCompleted
回调。当应用程序位于前台或后台时,将执行这两个事件。
当应用程序关闭时,
BackgroundTask
仍然在那里,因为是操作系统处理它,它总是在那里。问题是,当执行任务的
Run
方法时,我希望在类库中执行方法,但由于我没有应用程序的实例,因此我无法执行此操作。


那么,当应用程序关闭时,如何从我的
BackgroundTask
执行我的类库或MainApp中的代码?我是否可以从我的
BackgroundTask
将应用程序唤醒/启动到后台或前台?

否。无法以编程方式打开主应用程序。这听起来似乎对你的情况没有意义,但你可以显示一个通知,要求用户打开应用程序


否则,最好设置一个标记,表明需要处理,然后在用户下次运行主应用时检查是否需要处理。

否。无法通过编程方式打开主应用。这听起来似乎对你的情况没有意义,但你可以显示一个通知,要求用户打开应用程序


否则,最好设置一个需要处理的标志,然后在用户下次运行主应用程序时检查该标志。

操作系统不允许您从后台任务打开应用程序,因为这样会违反用户的前台体验,因为您将在未经用户同意的情况下更改应用程序(这就是为什么像Rob Caplan这样的祝酒词更有意义)。我认为您提到的
TaskCompleted
处理程序允许您的UI(用户可以看到)对注册任务的最后一个已完成的后台任务实例作出反应(例如:显示应用程序处于前台时在bg任务中下载的更新的相册艺术)


要从您提到的类库中运行代码以响应已完成的任务,只需引用类库(winRT库(如便携库)必须支持引用)或者将代码移动到后台任务winRT库,并从IBackgroundTask.Run方法调用该代码,然后退出。

操作系统不允许您从后台任务打开应用程序,因为这样会违反用户的前台体验,因为您将在未经用户同意的情况下更改应用程序(这就是为什么像Rob Caplan这样的祝酒词更有意义)。我认为您提到的
TaskCompleted
处理程序允许您的UI(用户可以看到)对注册任务的最后一个已完成的后台任务实例作出反应(例如:显示应用程序处于前台时在bg任务中下载的更新的相册艺术)

要从您提到的类库中运行代码以响应已完成的任务,只需引用类库(winRT库(如便携库)必须支持引用)或将代码移动到后台任务winRT库,并从IBackgroundTask.run方法调用该代码,然后退出