标签:下载 network htm 分配 addition 网站 功能性 android ref
**本文章为官方文档译文,如果错误,请指正**
现代应用程序可以在用户交互的直接流程之外异步执行其许多任务。这个异步任务的一些例子是:
智能调度这些工作可以提高应用程序的性能,以及系统健康方面,例如电池寿命。JobScheduler为你做这个调度工作。
有一些API你可以使用以调度后台工作。这些选项中的主要职责是 JobScheduler。JobScheduler API允许你指定执行任务的稳定条件,以及整个设备的集中式任务调度,已获得最佳的系统运行状态。JobScheduler也提供高度可扩展的功能:它适用于像清楚缓存等这样的小的功能,也使用于像同步数据库到云端这样的大功能。
除了JobScheduler,还有其它一些机制可以帮助你的程序调度工作。他们包括:
此页简单介绍了JobScheduler和其它一些API,它们能帮助应用程序调度工作,以最大化程序性能和系统运行状态。
JobScheduler是Android框架API,以实现调度任务或者工作。JobScheduler在Android5.0(API层级21)第一次引入,并且保持积极发展。尤其,Android7.0(API级别24)增加了基于ContentProvider改变来触发作业的功能。
JobScheduler在平台中实现,它可以收集有关需要在所有程序中运行的作业信息。该信息在同一时间或者差不多时间用于作业调度。以这种方式执行分批作业,允许设备进入并保持更长的休眠状体,保持电池寿命。
你可以通过注册作业来使用JobScheduler,并制定他们对于网络和时间的要求。然后,系统在适合的时间优雅的调度执行作业。同时,如果需要,它也遵循Doze and App Standby限制来推迟作业执行。JobScheduler提供很多方法来定义作业执行条件。
假如你的应用程序目标为Android5.0(API层级21),我们建议你使用JobScheduler去执行后台任务。更多信息关于JobScheduler,请参考其API参考文章。
AlarmManager是系统提供的另外一种调度任务的选择。如果应用程序需要发送通知或者设置闹铃,此时该API非常有用。
你应该仅仅当必须在特定时间执行任务的时候才使用该API,但不要求像JobScheduler允许你指定其它更加强大的执行条件,例如设备空闲和充电检查。
Firebase JobDispatcher是一个开源库,提供类似于Android平台中JobScheduler的API。Firebase JobDispatcher作业针对Android版本低于5.0(API层级21)应用程序的JobScheduler兼容性层。
Firebase JobDispatcher支持用户使用Google Play服务作为调度(运行)作业的实现,同时这个库也允许你定义和使用其它的实现:例如,你可能决定使用JobScheduler或者编写自定义自己的代码。因为这些多功能性,我们建议你使用Firebase JobDispatcher,假如你的APP目标Android版本是低于5.0的(API层级21)。
更多关于Firebase JobDispatcher,请参考其文档和源代码。
除了上述API和库之外,还有同步适配器和服务,可以帮助你的应用程序在特定条件下更好,更强壮的运行。
该框架继续提供了SyncAdapter类以管理在设置和服务器之间同步数据的任务。同步适配器是特别为在设备和云端同步数据设计的,你应该仅仅只在此种任务中使用它们。同步适配器比上面提到的库和API有更加复杂的实现,因为它至少需要一个伪造的authenticator和content provider实现。因为这个原因,一般不应该创建同步适配器仅仅为了在后台同步数据到云端。你应该尽可能的使用JobScheduler,Firebase JobDispatcher或者GCM Network Manager替代。
在Android N(API层级24),SyncManager在JobScheduler之上。如果需要其提供的附加功能,则只应使用SyncAdapter类。
服务框架允许你在后台执行长时间运行的操作。我们建议使用前台服务执行那些需要为用户驻留的任务,例如播放音乐。绑定服务还可以用于各种情况,例如,仅当用户在一个fragment或者activity的页面时才需要运行服务。
你应该避免为那些无限制时间或者周期性任务开始的服务,因为他们持续使用设备资源即使当他们不再执行任务的时候。相反,你应该使用该页面描述的其它解决方案,并提供本机生命周期管理。开始使用服务仅仅作为最后的手段。Android平台可能在将来不再支持服务。
无论你采用何种解决方案,请记住以下几点:
原文地址:https://developer.android.google.cn/topic/performance/scheduling.html
标签:下载 network htm 分配 addition 网站 功能性 android ref
原文地址:http://www.cnblogs.com/benjiming/p/7056213.html