Android源码面试宝典之JobScheduler从使用到原理分析(一)【JobScheduler的使用】

时间:2023-03-23 20:06:22

我们之前总结过HandlerThread、IntentService,http://t.csdn.cn/U7Qzr,知道了,在子线程执行一些定时任务,android已经给我们提供了现成的一些API。但是我们也知道,这些老的API随着android的逐步发展,里面的很多漏洞逐渐被开发者们发现。SharePreference的ANR典型问题、HandlerThread的无限循环问题、IntentService仅有一个线程的局限性、AsyncTask的内存泄露问题等等,我们我们总是看到,随着每个android新版本的发布,看到sdk上面总是有各种废弃 Deprecated 的字样。

本文,我们主要对IntentService的替代API接口JobScheduler,从简单的使用入手,然后逐步对内部的实现源码细节进行分析。

1. IntentService引入的背景

首先我们先看一下,android 8.0 之后,sdk中IntentService类的注释说明



/**
*这些主要是IntentService的使用说明,这里不再赘述,各位有兴趣的可以到小编专栏找相应的文章,查看
* IntentService is an extension of the {@link Service} component class that
* handles asynchronous requests (expressed as {@link Intent}s) on demand.
* Clients send requests
* through {@li