时间:2021-05-21
首先,我们需要明确Service是运行在主线程的,不能有耗时操作,这样,在Service中处理耗时操作的时候,我们依然需要使用线程来处理。
既然在Service里也要创建一个子线程,那为什么不直接在Activity里创建呢?
这是因为Activity很难对Thread进行控制,当Activity被销毁之后,就没有任何其它的办法可以再重新获取到之前创建的子线程的实例。而且在一个Activity中创建的子线程,另一个Activity无法对其进行操作。但是Service就不同了,所有的Activity都可以与Service进行关联,然后可以很方便地操作其中的方法,即使Activity被销毁了,之后只要重新与Service建立关联,就又能够获取到原有的Service中Binder的实例。因此,使用Service来处理后台任务,Activity就可以放心地finish,完全不需要担心无法对后台任务进行控制的情况。
标准Service的写法:
@Overridepublic int onStartCommand(Intent intent, int flags, int startId) {new Thread(new Runnable() {@Overridepublic void run() {// 开始执行后台任务}}).start();return super.onStartCommand(intent, flags, startId);}class MyBinder extends Binder {public void startDownload() {new Thread(new Runnable() {@Overridepublic void run() {// 执行具体的下载任务}}).start();}}以上所述是小编给大家介绍的Andriod Service与Thread的区别介绍,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本节引言1.线程的相关概念1)相关概念:2)线程的生命周期:3)创建线程的三种方式:2.Service与Thread线程的区别3.Service的生命周期图4.
前面两讲《C++11并发指南二(std::thread详解)》,《C++11并发指南三(std::mutex详解)》分别介绍了std::thread和std::
本文章来总结一下关于apache伪静态与iis伪静态区别介绍,主要讲到了一些规则的问题与配置区别,以后大家就可以直接在iis伪静态转换apache,反之也很简单
Java线程池的几种实现方法和区别介绍importjava.text.DateFormat;importjava.text.SimpleDateFormat;i
以上便是关于cellular的意思以及与WLAN版iPad的区别介绍了。不同于WLAN版,cellular版的平板电脑不仅可以通过无线局域网来实现上网,还可