Android——Service
来源:互联网 发布:ubuntu启动脚本编写 编辑:程序博客网 时间:2024/06/06 09:15
- 长期在后台运行,如接收推送消息,在锁屏状态下监听传感器信息
在外界执行StartService(new Intent(MainActvity.this,MyAty.class));时,会执行onCreate()和onStartCommand(Intent i,int flags,int startId){ }
public class MyService extends Service {
public IBinder onBind(Intent i){ //与活动通信
return null;
}
public void onCreate(){ //会在服务创建的时候调用
super.onCreate();
}
public int onStartCommand(Intent i,int flags,int startId){ //服务每次启动的时候都会调用
return super.onStartCommand(i,flags,startId);
}
public void onDestory(){ //服务在销毁的时候调用
super.onDestory();
}
}
- 可通过绑定服务来启动服务bindService
- Service的生命周期
一旦项目的任何位置调用了Context的startService()方法,相应的服务就开始启动了,并回调onStartCommand()方法。如果这个服务之前没有创建过,onCreate()方法会先于onStartCommand()方法执行。服务启动后会一直保持运行状态,直到stopService()或stopSelf()方法被调用。注意:虽然每调用一次startService()方法,onStartCommand()方法就会执行一次,但实际上每个服务都只会存在一个实例。所以不管你调用了多少次startService(),只需要调用一次stopService()或stopSelf()方法,服务就会停止
可以调用Context的bindService()来获取一个服务的持久的连接,这是就会回调服务中的onBind()方法。如果这个服务之前还没有创建过,则onCreate()方法先于onBind()执行。调用方可以获取到onBind()方法里返回的IBinder对象的实例,这样就可以自由的和服务进行通信了。只要调用方和服务之间的连接没有断开,服务就会一直保持运行状态
当调用了startService()方法以后,又去调用stopService()方法,这是服务的onDestory()方法就会执行,表示服务已经销毁了。
当调用了bindService()方法以后,去调用unbindService()方法,onDestory()方法就会执行。
但是,需要注意的是我们完全有可能对一个服务既调用了startService(),又调用了bindService()方法,这种情况下,要同时调用stopService()和unbindService()方法,onDestory()方法才会执行,服务才会停止。
- 服务有两种状态,一种是启动状态,一种是绑定状态。
处于启动状态时,做一些后台计算,不需要与外界有直接的交互,尽管这是的service是用于后台计算的,但本身是运行在主线程中的,因此耗时的计算需要在单独的线程中完成。
处于绑定状态时,同样可以进行内部计算,但是处于这种状态时,外界可以更好的与Service进行通信。
0 0
- Android——Service
- Android——service
- android——service
- Android Service 服务 —— Service
- Android Service Test——service
- 详解 android —— service
- Android组件——Service
- 初识android——Service
- Android服务——Service
- Android基础——Service
- Android——Service总结
- Android 组件 — Service 剖析
- android—调试命令service
- Android四大组件—Service
- Android四大组件—Service
- Android Service 服务(一)—— Service
- Android Service 服务(一)—— Service
- Android Service 服务(一)—— Service
- dijit中边框容器BorderContainer
- poj 3321 Apple Tree(树状数组)
- PPTP 实践篇
- btrace
- 简单粗暴的“大数据“解决方案
- Android——Service
- C/C++_三大排序
- 解决Maven Configuration Problem问题
- 第三章 3.5.3 指针和数组
- CentOS7 安装arm-linux-gdb-7.5
- 【PAT】(乙级)1004. 成绩排名 (20)
- 网页抓取神器hawk使用心得
- hdu 5806 NanoApe Loves Sequence Ⅱ 前缀和+尺取法
- (小案例)数组应用:实现学生管理系统