none
关于Windows Store apps进程管理 RRS feed

  • 问题

  • 有几个问题想得到解答!

    1、App什么时候触发Suspending?为什么要在Suspending里面保存数据?所谓保存数据,是保存什么?UI的数据么?如果App不需要保存数据,那还需要么?运行着App时点击Window键切换到开始,这时候App会挂起么?

    2、App什么时候触发Resuming?加载数据要在这里面做?

    3、何时需要用到BackgroundTask?与消息推送结合?可否有替代方案?如果我的程序在挂起的时候,仍然需要检测服务器的变更,然后更新tile,该怎么办?

    4、Task与BackgroundTask是什么关系?



    2013年3月27日 10:18

答案

全部回复

  • 1.App切换到后台或系统进入low power状态时,会进入Suspending状态。在Suspending事件里保存数据,是为了在Resume时恢复状态用。具体保存什么数据,取决于你自己的应哟国内需要,可以包含应用的运行状态及用户数据等。只要前端应用被切换到后台,都会挂起。

    2.当应用切换到前台或系统从low power状态恢复时,会触发Resuming。这是加载数据,恢复状态的好时机。

    3.如果你的应用被挂起时,仍然需要在后台执行一些任务或操作,这种情况下可以用BackgroundTask。BackgroundTask是与消息推送不同的机制。

    4.关于BackgroundTask,请参考 Windows.ApplicationModel.Background Supporting your app with background tasks (Windows Store apps using C#/VB/C++ and XAML) Background task sample

    你这里所指的Task是系统任务吗?还是C++ 里concurrency命名空间里的 task Class (Concurrency Runtime)?

    BackgroundTask与它们没有什么直接的关系。

    2013年3月28日 6:14
  • 请参考Grass River的回答,应该解决了你大部分的问题。

    关于第三个问题的补充。

    通常情况下,如果你的应用被挂起了,将不会收到网络事件通知。在Resume时,需要重新检查网络状态。

    如果采用了Background Task机制,可以注册系统事件触发器,侦测有关网络事件。详情请参阅 How to respond to system events with background tasks (Windows Store apps using C#/VB/C++ and XAML)

    此外,Background Task可以与PushNotificationTrigger结合使用,以便在后台运行时仍能进行实时通信更新。


    Robin [MSFT]
    MSDN Community Support | Feedback to us
    Develop and promote your apps in Windows Store
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    2013年3月28日 8:47
    版主
  • Robin_Yang, 您好:

    还有几个问题想请教,

    此外,Background Task可以与PushNotificationTrigger结合使用,以便在后台运行时仍能进行实时通信更新。

    1、关于上面的加粗的文字内容。我看了BackgroundTask的触发时机,似乎没有应用程序主动立刻触发的啊?PushNotificationTrigger可以实现实时触发BackgroundTask?

    2、我做了一个Sample,我使用BackgroundTask,在UI线程加等了Progress和Complete事件,让后让UI发送Toast,实现了。不过我不明白的是:一旦App切到后台,就会挂起,挂起了,就是系统不分配CPU,那么为什么我的BackgroundTask的回调还能让App发送Toast呢?是UI加等回调的代码挂载到了Background进程,还是Background进程能resume App,让系统给本已挂起的App分配CPU?


    2013年3月28日 9:10
  • 来人帮忙啊!!!!
    2013年4月1日 2:31
  • 在后台时候 BackgroundTask 由一个独立进程去操作执行,并不是应用本身进程,这个后台进程只是运行了你的代码。

    Bob Bao

    Do you still use the same Windows 8 LockScreen always? Download Chameleon Win8 App quickly, that changes your LockScreen constantly.
    你是否还在看着一成不变的Windows 8锁屏而烦恼,赶紧下载这个 百变锁屏 应用,让你的锁屏不断地变化起来。

    2013年4月3日 9:44
    版主