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

Java乔晓松-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. android 组件,xml布局中属性详解
  2. Android中widget组件的开发流程
  3. Android 四大组件 —— 活动(使用Intent 实现活动的显示跳转)
  4. 解开Android应用程序组件Activity的"singleTask"之谜(2)
  5. 简单的Android UI组件使用

随机推荐

  1. Android RecyclerView DividerItemDecora
  2. ch010 Android GridView
  3. Android Email程序源码
  4. android内存机制
  5. Android(安卓)Jetpack系列——ViewModel
  6. Android ContentProvider
  7. Android: Android 3.0 SDK发布,速度更新之
  8. Android Bitmap内存优化
  9. android interview questions
  10. Android sharedUserId