Activity和Service绑定

Activity和Service绑定后,可以方便Activity随时调用对应的Service里面的方法

绑定代码如下

Activity类代码:

[java] view plaincopy

  1. <span style="font-size:16px;">package com.fox.Activity;
  2. import com.fox.Activity.service.Service1;
  3. import android.app.Activity;
  4. import android.content.ComponentName;
  5. import android.content.Context;
  6. import android.content.Intent;
  7. import android.content.ServiceConnection;
  8. import android.os.Bundle;
  9. import android.os.IBinder;
  10. import android.util.Log;
  11. import android.view.View;
  12. import android.widget.Button;
  13. import android.widget.Toast;
  14. public class Activity1 extends Activity {
  15. private Button btn1 = null;
  16. private static String LOG="mp3";
  17. @Override
  18. public void onCreate(Bundle savedInstanceState) {
  19. super.onCreate(savedInstanceState);
  20. setContentView(R.layout.main);
  21. btn1 = (Button) findViewById(R.id.button1);
  22. btn1.setOnClickListener(new btn1ClickListener());
  23. //开始绑定
  24. Intent intent = new Intent(Activity1.this,Service1.class);
  25. bindService(intent, conn, Context.BIND_AUTO_CREATE);
  26. }
  27. private Service1 myservice = null;//绑定的service对象
  28. //连接对象,重写OnserviceDisconnected和OnserviceConnected方法
  29. public ServiceConnection conn= new ServiceConnection() {
  30. @Override
  31. public void onServiceDisconnected(ComponentName name) {
  32. Log.i(LOG, "onServiceDisconnected>>>>>>>>");
  33. myservice = null;
  34. }
  35. @Override
  36. public void onServiceConnected(ComponentName name, IBinder service) {
  37. Log.i(LOG, "onServiceConnected>>>>>>>>");
  38. myservice = ((Service1.MyBinder)service).getService();
  39. Log.i(LOG, myservice+">>>>>>>>");
  40. }
  41. };
  42. class btn1ClickListener implements View.OnClickListener {
  43. @Override
  44. public void onClick(View v) {
  45. unbindService(conn);
  46. }
  47. }
  48. }</span>

Service类代码:

[java] view plaincopy

  1. <span style="font-size:16px;">package com.fox.Activity.service;
  2. import android.app.Service;
  3. import android.content.Intent;
  4. import android.os.Binder;
  5. import android.os.IBinder;
  6. import android.util.Log;
  7. public class Service1  extends Service{
  8. private final IBinder binder = new MyBinder();
  9. private static final String LOG="mp3";
  10. @Override
  11. public IBinder onBind(Intent intent) {
  12. Log.i(LOG, "onBind............");
  13. return binder;
  14. }
  15. /**
  16. * 该类是获得Service对象
  17. * @author Administrator
  18. *
  19. */
  20. public class MyBinder extends Binder{
  21. public Service1 getService(){
  22. return Service1.this;
  23. }
  24. }
  25. @Override
  26. public void onCreate() {
  27. Log.i(LOG, "oncreate............");
  28. super.onCreate();
  29. }
  30. @Override
  31. public void onStart(Intent intent, int startId) {
  32. Log.i(LOG, "onstart............");
  33. super.onStart(intent, startId);
  34. }
  35. @Override
  36. public int onStartCommand(Intent intent, int flags, int startId) {
  37. Log.i(LOG, "onstartcommand............");
  38. return super.onStartCommand(intent, flags, startId);
  39. }
  40. @Override
  41. public void onDestroy() {
  42. Log.i(LOG, "ondestory............");
  43. super.onDestroy();
  44. }
  45. }
  46. </span>

开始绑定调用方法A.bindService()--->S.onCreate--->S.onBind---->>A.onServiceConnected绑定成功,并获得Service对象

结束绑定按钮的监听事件-->>unbindService(conn)关闭连接对象-->>S.destory()销毁该service

注:结束绑定时是不会调用onServiceDisconnected()方法的;

http://blog.csdn.net/huqingwei0824/article/details/6869622

时间: 2024-10-14 09:50:48

Activity和Service绑定的相关文章

8.1.2 绑定Activity和Service

8.1.2 绑定Activity和Service 2010-06-21 16:57 李宁 中国水利水电出版社 字号:T | T <Android/OPhone开发完全讲义>第8章Android服务,本章主要介绍了Android系统 中的服务(Service)技术.Service是Android中4个应用程序组件之一.在Android系统内部提供了很多的系统服务,通过这些系统 服务,可以实现更为复杂的功能,例如,监听来电.重力感应等.本节为大家介绍绑定Activity和Service. AD:

activity与service进程内通信

package com.example.binbin.testbinder; import android.app.Service; import android.content.Intent; import android.os.Binder; import android.os.IBinder; import android.support.annotation.Nullable; import android.util.Log; import android.widget.Toast; /

android 将Service绑定到Activity

Service可以和Activity绑定,后者会维持对Service实例的引用,此引用允许你像对待其他实例化的那样,对正在运行的Service进行方法调用. 允许Service和Activity绑定,这样能够获得更加详细的接口.要让一个Service支持绑定,需要实现onBind方法,并返回被绑定Service的当前实例. package com.example.androidtest.service; import android.app.Service; import android.con

activity 与 service 之间的通信

activity和service通信:通过binder 举个我实际项目中的例子:在service中下载更新应用 首先是下载更新apk的service: public class UpdateVersionService extends Service { private final String tag = "young"; private Context context = this; private BaseApplication application; private Down

Android activity和service的生命周期对比

1Activity生命周期 七个方法 1. void onCreate(Bundle savedInstanceState) 当Activity被第首次加载时执行.我们新启动一个程序的时候其主窗体的onCreate事件就会被执行.如果Activity被销毁后(onDestroy后),再重新加载进Task时,其onCreate事件也会被重新执行. 2. void onStart()   activity变为在屏幕上对用户可见时调用. 3. void onResume()   activity开始与

Android -- Service绑定解绑和aidl

Service是安卓四大组件之一,先前讲到了Service的生命周期,以及非绑定类型的生命周期的例子,这次来分享一下绑定形式的. 应用组件(客户端)可以调用bindService()绑定到一个service.Android系统之后调用service的onBind()方法,它返回一个用来与service交互的IBinder. 绑定是异步的,bindService()会立即返回,它不会返回IBinder给客户端.要接收IBinder,客户端必须创建一个ServiceConnection的实例并传给b

Android基础笔记(十一)- Service基础和注意事项以及Activity与Service的通信

Service的基本概念 为什么要有Service Service的基本用法 电话窃听器的小案例 Service和Activity通信 Service和Thread的关系 向光明而行! Service的基本概念 Service是Android的四大组件之一,在每一个应用程序中都扮演者非常重要的角色. 它主要用于在后台处理一些耗时的逻辑,或者去执行某些需要长期运行的任务.必要的时候,我们甚至可以在程序退出的情况下,让Service在后台继续保持运行状态. 既然都是被用于处理耗时的操作,那么我们什么

Service绑定模式

使用绑定的Service可以实现组件与Service的通信. 组件与被绑定的Service可以不归属于同一个应用程序,因此通过绑定Service可以实现进程间通信. 调用bindService(Intent service,ServiceConnectionconn,int flags)方法即可实现当前组件与Service的绑定. 参数说明 Intent service:配置被激活的Service组件,该Intent可以是显式的,也可以是隐式的: ServiceConnection conn:当

Activity和Service的生命周期(图)

1.Activity的生命周期 情形一.一个单独的Activity的正常的生命过程是这样 的:onCreate->onStart->onPause->onStop->onDestroy.例如:运行一个 Activity,进行了一些简单操作(不涉及页面的跳转等),然后按返回键结束. 情形二.有两个Activity(a和b),一开始显示a,然后由a启动b,然后在由b回到a,这时候a的生命过程应该是怎么样的呢(a被b完全遮盖)? a经历的过程为 onCreate->onStart-