Andriod Service与Thread的区别介绍
程序员文章站
2023-11-06 19:30:10
首先,我们需要明确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的区别介绍,希望对大家有所帮助
推荐阅读
-
关于Mysql存储引擎中InnoDB与Myisam的主要区别介绍
-
jquery中map函数与each函数的区别实例教程介绍
-
jQuery开发中$.each与$().each的区别示例介绍
-
Android开发笔记之:Handler Runnable与Thread的区别详解
-
打印机是喷墨好还是激光好?喷墨与激光打印机的区别对比介绍
-
Andriod Service与Thread的区别介绍
-
树蜜与蜂蜜的区别,给你介绍鉴别蜂蜜的方法
-
举例介绍mysql数据库与oracle数据库的区别
-
i3 6100和i3 6300哪个好?i3-6100与i3-6300之间的区别对比介绍
-
什么叫代理剪辑? pr剪辑与代理剪辑的区别介绍