android的四大组件之一Service(服务的绑定)

怎么绑定服务,又怎么解除服务,代码如下:

MainActivity.java源码:

package com.example.lesson14_binder;import android.app.Activity;import android.content.ComponentName;import android.content.Context;import android.content.Intent;import android.content.ServiceConnection;import android.os.Bundle;import android.os.IBinder;import android.view.View;/** * 2013-6-18 下午2:22:00 *  * @author 乔晓松 */public class MainActivity extends Activity {public MyService myService;// 内部类获取连接对象public ServiceConnection conn = new ServiceConnection() {// 连接失败后调用的方法@Overridepublic void onServiceDisconnected(ComponentName name) {myService = null;System.out.println("-----service Faild");}// 连接成功后调用的方法@Overridepublic void onServiceConnected(ComponentName name, IBinder service) {myService = ((MyService.MyBinder) service).getService();System.out.println("-----service connection");}};@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}// 绑定服务public void bindService(View v) {Intent serviceIntent = new Intent(this, MyService.class);this.bindService(serviceIntent, conn, Context.BIND_AUTO_CREATE);System.out.println("---------bindService");}// 解除绑定public void unBindService(View v) {this.unbindService(conn);System.out.println("---------unBindService");}}


MyService.java源码:

package com.example.lesson14_binder;import android.app.Service;import android.content.Intent;import android.os.Binder;import android.os.IBinder;/** * 2013-6-18 下午2:16:37 *  * @author 乔晓松 */public class MyService extends Service {public MyBinder myBinder = new MyBinder();// 绑定的时候执行@Overridepublic IBinder onBind(Intent intent) {System.out.println("------onBind");return myBinder;}// 重新绑定的时候执行@Overridepublic void onRebind(Intent intent) {super.onRebind(intent);System.out.println("------onRebind");}// 解除绑定的时候执行@Overridepublic boolean onUnbind(Intent intent) {System.out.println("------onUnbind");return super.onUnbind(intent);}// 创建服务的时候执行@Overridepublic void onCreate() {super.onCreate();System.out.println("------onCreate");}// 开启服务的时候执行@Overridepublic int onStartCommand(Intent intent, int flags, int startId) {System.out.println("------onStartCommand");return super.onStartCommand(intent, flags, startId);}// 销毁服务的时候执行@Overridepublic void onDestroy() {super.onDestroy();System.out.println("------onDestroy");}// 继承绑定类的内部类public class MyBinder extends Binder {public MyService getService() {return MyService.this;}}}


布局文件的代码:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:paddingBottom="@dimen/activity_vertical_margin"    android:paddingLeft="@dimen/activity_horizontal_margin"    android:paddingRight="@dimen/activity_horizontal_margin"    android:paddingTop="@dimen/activity_vertical_margin"    tools:context=".MainActivity" >    <Button        android:id="@+id/btn_start"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_alignParentLeft="true"        android:layout_alignParentRight="true"        android:layout_alignParentTop="true"        android:layout_marginTop="59dp"        android:onClick="bindService"        android:text="@string/btn_start" />    <Button        android:id="@+id/btn_end"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_alignLeft="@+id/btn_start"        android:layout_alignRight="@+id/btn_start"        android:layout_below="@+id/btn_start"        android:layout_marginTop="58dp"        android:onClick="unBindService"        android:text="@string/btn_end" /></RelativeLayout>


更多相关文章

  1. Mac adb 配置
  2. linux 下使用ndk-build编译android使用的c++静态库
  3. Android(安卓)- 多线程 - AsyncTask
  4. Android使用service后台更新计划任务
  5. Android异步任务AsyncTask
  6. Android—Service详解—模拟点击抽奖(2020.7.3)
  7. Android中startService的使用及Service生命周期
  8. Android事件分发机制完全解析,带你从源码的角度彻底理解(上)
  9. Android——横竖屏切换以及数据保存

随机推荐

  1. Java/Android(安卓)Annotation processor
  2. Android Dalvik虚拟机初识
  3. Android(安卓)开发环境下载地址
  4. android 在listview上的 gallery 禁止上
  5. android 诸多源码工程下载
  6. Android如何获取assets或者raw目录的视频
  7. android listview onitemclick
  8. Android中解析lrc歌词 同步歌曲
  9. Android中native_handle private_handle_
  10. Android 自定义字体方案