Service:
掌握进程内服务的管理方法;
掌握服务的隐式启动和显示启动;
掌握跨进程服务的绑定和调用方法;
进程之间通讯;
绑定方式:数据共享方便;
bindService()建立服务连接 和 unbindService()停止服务连接(Connection);
如果没有启动bindService没有调用,则会自动调用Service;
同一个Service可以绑定多个服务连接;
命令行安装apk文件:
先启动一个avd;使用命令adb install [apk文件的完整路径]
写一个Service,需要继承Service类,启动一个Service使用startService(Intent),
结束Service,stopService(Intent)
在manifest中注册一个Service:
<servcie />
ServiceConnection的使用,使用bindService()方法进行Service绑定:
1、在Service中的onBind方法中的返回的值不能为null;
2、若Service中的onBind方法返回的是null,则在ServiceConnetion中的回调函数
onServiceConnected方法没有反应;
3、在Activity中调用unbindService方法
Service:
在Service中创建一个内部类,继承Bundle类,其中创建一个方法返回Service对象,用以在activity中获取
Service对象,调用其他方法
例如:
class LocalService extends Binder {
TestService getService() {
return TestService.this;
}
}
生命周期:
startService ===> onCreate() --> onStart() ,第二次startService ==> onStart()
stopService ===> onDestroy()
bindService ===> onCreate() --> onBind(),第二次bindService,不在调用onCreate(),onBind()方法,而调用
ServiceConnection中的onServiceConnected方法
unbindService ===> onDestroy()
① 使用startService方式无法获取Service对象,bindService可以获取;
② bindService方式对于Service的生命周期的控制比较弱;startService可以获取在onStart中获取一些资源
android学习笔记9
最新推荐文章于 2024-01-19 16:22:18 发布