Activity与Service是否在一个线程?

    默认情况下,Service构造于应用进程中,并且和其他所有的组件一样,都在进程的主线程中运行。但是这个Service不能执行太过于耗时或者耗费内存的操作,否则将会导致主线程阻塞或者假死。如果需要执行这样的操作,我们可以通过配置服务组件的进程参数process使其在特定的进程中运行,当然这就是你的小问题中的能否存在其他进程的答案。

    其实Android的进程大体上可以分为两种:私有进程和共享进程,私有进程只能放置本应用的进程,而共享进程可以承载来自不同应用的组件。你可以设置android:mutiprocess的的值来完成将组件留下来还是嫁出去的操作,它的默认值false表示组件的对象构造和运行都在本应用进程中,如果为true,就会将该组件嫁出去,当有其他应用进程来调用这个组件时,会在调用的应用中来构造一个组件的对象,而不是在拥有该组件的应用进程中。所以可以有其他进程的Activity。

 

        sdk上说的是activityservice默认是运行在应用进程的主线程中,四大组件默认都是和activity运行在同一个主线程中的,那就是说activity通过startservice方法启动一个服务后,被启动的服务和activity都是在同一个线程中的,那为什么说service可以用来进行后台音乐的播放或者做一些监控之类的事情,我是不是可以这样理解, 用service来做监控之类的事情他的有效性是以启动它的应用程序未被退出为前提,如果应用程序退出了,那被这个应用程序启动的service就会一同消失呢???
        还有就是如果我的应用程序只有一个activity,当我按返回键的时候,是主动销毁了这个activity,但是他所在的线程还是存在的,只不过是这个activity他所占用的资源被释放掉了,这个activity所在的主线程只有当android内存不足才会被杀死掉,否则一般的情况下这个activity所在的应用进程始终存在,也就是这个activity所启动的服务也会一直运行下去。
        还有,如果我的应用程序中通过一个开机启动广播接受者来启动一个service,那个这个service所在的应用就会开始运行,只不过界面没有而已,并且这个service也会经过系统判断后被决定是否被停止服务,甚至杀死这个应用程序响应的进程呢。

转载于:https://www.cnblogs.com/tlonge/p/3155719.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值