本文介绍: 另外,根据 IntentService 的特性,这个Service 在运行结束后应该是会自动停止的,所以我们又重写了 onDestroy()方法,在这里也打印了一行日志,以证实Service 是不是停止了。这里的thread是一个Kotlin内置的顶层函数,我们只需要在Lambda 表达式中编写具体的逻辑就可以了,连start()方法都不用调用,thread函数在内部帮我们全部都处理好了。所以,我们应该在Service 的每个具体的方法里开启一个子线程,然后在这里处理那些耗时的逻辑。
Service 中的代码都是默认运行在主线程当中的,如果直接在Service 里处理一些耗时的逻辑,就很容易出现ANR(Application Not Responding )的情况。
所以,我们应该在Service 的每个具体的方法里开启一个子线程,然后在这里处理那些耗时的逻辑。
但是,这种Service 一旦启动,就会一直处于运行状态,必须调用stopService()或 stopSelf()方法,或者被系统回收,Service 才会停止。
虽说这种写法并不复杂,但是总会有一些程序员忘记开启线程,或者忘记调用stopSelf()方法。
为了可以简单地创建一个异步的、会自动停止的Service ,Android 专门提供了一个 IntentService
类,这个类就很好地解决了前面所提到的两种尴尬。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。