后台的原理示意图,虚线两边分别表示Application和System。Application就是我们的应用程序,System就是负责处理后台任务的Service。
,在应用程序里面,我们要注册Trigger,也就是任务的触发器,相当于是在某个时机适当地触发后台任务的运行。
注册之后,在SystemInfrastructure(系统的基础服务)中就保留了这个注册信息。不论是关闭了应用程序还是重新启动了设备,这个注册信息都会存在。
后台任务可以在应用程序处于挂起状态时运行。但是,如果应用程序己挂起,则它无法运行任何代码。那么,后台任务如何才能知道何时运行?当然,己挂起的应用程序不能启动后台任务。
后台任务由操作系统运行。它们关联到一个用于通知任务运行的触发器,此外,它们还可以关联到一组可选的条件。
后台任务提供了一种方案让应用程序关闭之后依然可以继续运行相关的服务,但是这是有限制的,它不可能实现在前台运行的应用程序的所有功能,只适合进行轻量的任务的执行,比如获取网络新消息的通知、定期提醒等操作。所以,后台任务真正的意义是作为应用程序的一个后台的轻量服务进行运行,绐用户提供一些重要的信息通知或者为应用程序记录—些重要的信息。
我们知道,Windows应用程序的生命周期分为Running、Suspcnded、Terminated三种状态。应用程序处于前台时,为Runnmg状态;处于后台时,为Suspended状态,用户关闭应用程序时或者在Suspended状态太久,系统自动关闭应用程序时,为Terminated状态。那么,后台任务应该在应用程序的3种状态下运行,也就是说它对于应用程序的状态是完全立,但是如果应用程序在Running状态下,应用程序是可以对后台任务进行操作的,比如关闭、汇报进度等,应用程序在前台运行的时候可以对后台任务进行控制。