绑定型service
来源:互联网 发布:华为整体网络解决方案 编辑:程序博客网 时间:2024/06/11 16:15
/*
* Google要求从android5.0开始必须使用显示Intent启动service组件;
*
* 启动型与绑定型的区别:
* -启动型:Activity和Service相对独立,Activity销毁,服务不会终止;
* –生命周期:一个服务只会创建一次、销毁一次,但是可以开始多次,
* 即onCreate和onDestroy方法只会被调用一次,而onStart方法会被调用很多次
* -绑定型:Activity和Service绑定,Activity退出,服务也自动销毁;
*
* Service与Avtivity通信
* • Service与Avtivity之间使用ServiceConnection接口进行通信
* ServiceConnection介绍
* – ServiceConnection回调接口用于接收onServiceConnected和onServiceDisconnected事件
* – 由于bindService方法是异步执行的,即bindService方法返回后,并不能立刻获取Service的实例,必须
* 响应onServiceConnected事件,在这个事件中获取Service的实例,然后执行一些初始化的工作;
* • Service与Avtivity通信原理
* Activity调用bindService方法,得到MyStartService对象的一个引用,这样Activity可以直接 调用到MyStartService中的方法;
*/
public class MainActivity extends Activity implements OnClickListener{ Button bindService, unbindService; Intent intent; ServiceConnection conn = new ServiceConnection() { @Override public void onServiceDisconnected(ComponentName name) //服务异常时调用; { System.out.println("onServiceDisconnected..."); } @Override public void onServiceConnected(ComponentName name, IBinder service) //绑定成功后回调的方法; { MyBinder myBinder = (MyBinder) service; myBinder.method(); } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); bindService = (Button)findViewById(R.id.bindService); unbindService = (Button)findViewById(R.id.unbindService); bindService.setOnClickListener(this); unbindService.setOnClickListener(this); intent = new Intent(this, MyBindService.class); } @Override public void onClick(View v) { switch(v.getId()) { case R.id.bindService: bindService(intent, conn, BIND_AUTO_CREATE); //异步绑定,第3个参数为0时,service不自动创建,ServiceConnection接口的方法不执行; break; case R.id.unbindService: unbindService(conn); //接触绑定; break; } }}
public class MyBindService extends Service{ public class MyBinder extends Binder { public void method() { System.out.println("MyBinder.method()..."); } } @Override public IBinder onBind(Intent intent) { IBinder iBinder = new MyBinder(); return iBinder; } @Override public void onCreate() { super.onCreate(); System.out.println("service is created..."); } @Override public void onDestroy() { super.onDestroy(); System.out.println("service is destoryed..."); }}
0 0
- 绑定型service
- Service组件 总结 + 绑定理Service三种实现方式
- 初期定型.
- Android Service 的延迟绑定与解绑技术
- Android:Service的非绑定式的创建和生命周期
- 关于Service的绑定、解绑问题的demo说明
- Service组件 总结 + 绑定理Service三种实现方式 Messager + Binder + AIDL
- 预缩定型机
- 预缩定型机
- 预缩定型机
- 安卓服务——started service一个非绑定式服务
- 安卓服务——bind service一个绑定式的服务
- 解绑
- 解绑
- 软件框架已经初步定型
- 浅谈特定型人工智能设计
- 安卓服务service全解,生命周期,前台服务、后台服务,启动注销、绑定解绑,注册
- 项目中的绑卡与解绑
- 如何提升销售培训工作的有效性?
- aidl的使用简介
- HDU 1203 I NEED A OFFER!
- iOS AppStore 申请加急审核
- Google推出iOS功能性UI测试框架EarlGrey
- 绑定型service
- linux-test测试
- LeetCode_OJ【63】Unique Paths II
- 设计模式(6)---状态模式
- js中bind、call、apply函数的用法
- 字符集之间转换
- monkey离线运行之shell脚本实现
- 让Xcode使用旧版Xcode的SDK
- Nginx安装部署