Andriod Service与Thread的区别介绍
程序员文章站
2022-06-20 13:10:43
首先,我们需要明确service是运行在主线程的,不能有耗时操作,这样,在service中处理耗时操作的时候,我们依然需要使用线程来处理。
既然在service里也要创建...
首先,我们需要明确service是运行在主线程的,不能有耗时操作,这样,在service中处理耗时操作的时候,我们依然需要使用线程来处理。
既然在service里也要创建一个子线程,那为什么不直接在activity里创建呢?
这是因为activity很难对thread进行控制,当activity被销毁之后,就没有任何其它的办法可以再重新获取到之前创建的子线程的实例。而且在一个activity中创建的子线程,另一个activity无法对其进行操作。但是service就不同了,所有的activity都可以与service进行关联,然后可以很方便地操作其中的方法,即使activity被销毁了,之后只要重新与service建立关联,就又能够获取到原有的service中binder的实例。因此,使用service来处理后台任务,activity就可以放心地finish,完全不需要担心无法对后台任务进行控制的情况。
标准service的写法:
@override public int onstartcommand(intent intent, int flags, int startid) { new thread(new runnable() { @override public void run() { // 开始执行后台任务 } }).start(); return super.onstartcommand(intent, flags, startid); } class mybinder extends binder { public void startdownload() { new thread(new runnable() { @override public void run() { // 执行具体的下载任务 } }).start(); } }
以上所述是小编给大家介绍的andriod service与thread的区别介绍,希望对大家有所帮助
上一篇: Android 静默安装实现方法
下一篇: 空城计到底是谁赢了?司马懿真的中计了吗?
推荐阅读