当前位置: 移动技术网 > 移动技术>移动开发>Android > Andriod Service与Thread的区别介绍

Andriod Service与Thread的区别介绍

2019年07月24日  | 移动技术网移动技术  | 我要评论

首先,我们需要明确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的区别介绍,希望对大家有所帮助

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网