Android中Service的使用
来源:互联网 发布:上海进项发票认证软件 编辑:程序博客网 时间:2024/05/21 22:21
service是运行于后台的一个组件,用来运行适合在后台的代码,它没有前台界面,可视为没有界面的activity。
服务有两种开启方式:startService()方法和bindService()方法。
startService方法启动的服务进程属于服务进程,在activity中启动的服务进程与activity是否存在无关。
bindService方法启动的服务进程通过ServiceConnection接口与activity绑定在一起,它不属于服务进程,activity一旦死亡,service也跟着死亡。
代码如下:
//MyService.java
public class MyService extends Service {
//绑定时调用
@Nullable
@Override
public IBinder onBind(Intent intent) {
//返回一个Binder对象
return new MyBinder();
}
//定义一个BInder,通过onBind返回给activity
class MyBinder extends Binder {
}
//解绑时调用
@Override
public void unbindService(ServiceConnection conn) {
super.unbindService(conn);
}
//服务创建时被调用
@Override
public void onCreate() {
super.onCreate();
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
return super.onStartCommand(intent, flags, startId);
}
//服务销毁时被调用
@Override
public void onDestroy() {
super.onDestroy();
}
}
//MainActivity.java
public class MainActivity extends AppCompatActivity {
private Intent intent;
private MyServiceConn conn;
private MyService.MyBinder myBinder;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
intent = new Intent(this, MyService.class);
conn = new MyServiceConn();
}
public void start(View view) {
startService(intent);
}
public void stop(View view) {
stopService(intent);
}
public void bind(View view) {
bindService(intent, conn, BIND_AUTO_CREATE);
}
class MyServiceConn implements ServiceConnection {
//服务成功连接时调用
@Override
public void onServiceConnected(ComponentName componentName, IBinder iBinder) {
//得到Service中的Binder对象,通过Binder对象来操纵service
myBinder = (MyService.MyBinder) iBinder;
}
//服务失去连接时调用
@Override
public void onServiceDisconnected(ComponentName componentName) {
}
}
public void unBind(View view) {
unbindService(conn);
}
}
服务分为本地服务和远程服务。
本地服务指的是服务和启动服务的activity在同一个进程中。
远程服务指的是服务和启动服务的activity不在同一个进程中。
- Android中service的使用
- Android中Service的使用
- Android中Service的使用
- Android中Service的使用及Service生命周期
- Android中Service方式使用的理解
- android中service、activity、broadcast的使用
- Android中service的使用,前台服务
- Android中Service的简单使用
- android中service的简单使用
- Android中绑定模式Service的使用
- Android中Service的使用详解
- Day13-Android中Service的基本使用
- Android Service的使用
- Android Service 的使用
- Android service的使用
- Android Service的使用
- Android Service 的使用
- Android Service 的使用
- 第四周-并联电阻的阻值
- sscanf() 和 sprintf() 函数
- Trident Framework分析
- Android的进程回收
- 第四周项目二 建设“单链表”算法库
- Android中Service的使用
- Annotation 注解原理 @Butter Knife黄油刀进阶
- bzoj 2733 永无乡 Splay 启发式合并
- 我的vim配置
- win7 下安装 redhat6.4双系统
- Android线程前奏
- 字典树的增、删、查、找前缀个数
- iconv
- Qcom LK阶段如何使用ADC介绍