Android Service

本文详细介绍了Android中的Service机制,包括Service的启动方式如startService和bindService,Service的生命周期,如何防止Service被系统杀死,以及如何实现远程Service并通过AIDL进行跨进程通信。
摘要由CSDN通过智能技术生成

Activity Service总结

1.Service调用

Service可以通过两种方法调用:
startService和stopService :这种方式开启后,需要调用stopService来销毁。多次调用startService,只会在第一次调用onCreate,后面只会调用onStartCommand。
生命周期为:onCreate()->onStartCommand()->running->onDestroy()

bindService和unbindService :这种方式与activity绑定,当activity销毁会自动销毁。生命周期:onCreate()->onBind()->running->unBind()->onDestroy()

当同时调用这两种方式来开启服务,需要同时调用stopService 和unbindService,这样Service才会销毁,Service是不会自动销毁的。 

2.Service特性

Service一般用于没有UI界面的后台,但是Service是运行于主线程中。所以不能在Service中写耗费太多时间的逻辑,否则容易ANR。所以你需要开启一个线程去进行耗时操作,Service和线程没有什么关系,是两个概念。
防止Service被杀死,可以使用前台Service。

3.远程Service和AIDL跨进程通信

<service  
        android:name="com.xxx.xxx.Service"  
        android:process=":remote" />  
通过android:process=":remote"这条属性,Service就会成为远程Service,但是Service会运行于另外一条进程中,所以Activity与Service通信需要使用AIDL而不能使用bindService这种方式了。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值