Thread和Service应用场合的区别
2012-12-06 15:16
309 查看
之前从别的童鞋那里转的, 地址弄丢了,抱歉。
1)Thread 是程序执行的最小单元,它是分配CPU的基本单位,可以用 Thread 来执行一些异步的操作。
如果是Local Service,那么对应的 Service 是运行在主进程的 main 线程上的。如果是Remote Service,那么对应的 Service 则是运行
在独立进程的main 线程上。因此 Service不是线程!
2)Thread 的运行是独立于 Activity 的,也就是说当一个 Activity 被 finish 之后,如果你没有主动停止Thread 或者Thread 里的 run 方
法没有执行完毕的话,Thread 也会一直执行。因此这里会出现一个问题:当 Activity 被 finish 之后,你不再持有该 Thread 的引用。另
一方面,你没有办法在不同的 Activity 中对同一 Thread 进行控制。
而任何 Activity 都可以控制同一 Service,而系统也只会创建一个对应 Service 的实例。因此你可以把 Service 想象成一种消息服务,
而你可以在任何有 Context 的地方调用 Context.startService、Context.stopService、Context.bindService,Context.unbindService,来
控制它,你也可以在 Service 里注册 BroadcastReceiver,在其他地方通过发送 broadcast 来控制它,当然这些都是 Thread 做不到的。
3) Service组件主要有两个目的:后台运行和跨进程访问。service可以在android系统后台独立运行,线程是不可以。
4) Service类是可以供其他应用程序来调用这个Service的而Thread只是在本类中在使用,如果本类关闭 那么这个thread也就下岗了
而Service类则不会.
5) Service 启动后, 只存在一个Service的实例,多次 startService, 只会有一个实例, 直到stopService, 而Thread则start几次,
就会创建几个Thread.
1)Thread 是程序执行的最小单元,它是分配CPU的基本单位,可以用 Thread 来执行一些异步的操作。
如果是Local Service,那么对应的 Service 是运行在主进程的 main 线程上的。如果是Remote Service,那么对应的 Service 则是运行
在独立进程的main 线程上。因此 Service不是线程!
2)Thread 的运行是独立于 Activity 的,也就是说当一个 Activity 被 finish 之后,如果你没有主动停止Thread 或者Thread 里的 run 方
法没有执行完毕的话,Thread 也会一直执行。因此这里会出现一个问题:当 Activity 被 finish 之后,你不再持有该 Thread 的引用。另
一方面,你没有办法在不同的 Activity 中对同一 Thread 进行控制。
而任何 Activity 都可以控制同一 Service,而系统也只会创建一个对应 Service 的实例。因此你可以把 Service 想象成一种消息服务,
而你可以在任何有 Context 的地方调用 Context.startService、Context.stopService、Context.bindService,Context.unbindService,来
控制它,你也可以在 Service 里注册 BroadcastReceiver,在其他地方通过发送 broadcast 来控制它,当然这些都是 Thread 做不到的。
3) Service组件主要有两个目的:后台运行和跨进程访问。service可以在android系统后台独立运行,线程是不可以。
4) Service类是可以供其他应用程序来调用这个Service的而Thread只是在本类中在使用,如果本类关闭 那么这个thread也就下岗了
而Service类则不会.
5) Service 启动后, 只存在一个Service的实例,多次 startService, 只会有一个实例, 直到stopService, 而Thread则start几次,
就会创建几个Thread.
相关文章推荐
- Thread和Service应用场合的区别
- Thread和Service应用场合的区别
- Android中Thread和Service应用场合的区别
- Android开发之Thread和Service的应用场合的区别
- Thread和Service应用场合的区别
- Thread和Service应用场合的区别
- Thread和Service应用场合的区别
- Thread和Service应用场合的区别
- Thread和Service应用场合的区别
- Thread和Service应用场合的区别
- Thread和Service应用场合的区别
- Thread和Service应用场合的区别
- Thread和Service应用场合的区别
- Thread和Service应用场合的区别
- Service 与 Thread 的区别与应用场景理解
- Thread和timer的应用区别
- service broadcast 和thread区别
- android的线程(Thread)和服务(Service)的区别
- abstract 和 interface 的区别及其各自的应用场合
- Thread与Service的区别