package com.example.bindservice;import com.example.bindservice.BindService.MyBinder;import android.os.Bundle;import android.os.IBinder;import android.app.Activity;import android.content.ComponentName;import android.content.Context;import android.content.Intent;import android.content.ServiceConnection;import android.util.Log;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;public class MainActivity extends Activity {private Button startBtn;private Button stopBtn;private boolean flag;private static final String TAG = "BindService";@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);flag = false;startBtn = (Button)this.findViewById(R.id.startBtn);stopBtn = (Button)this.findViewById(R.id.stopBtn);startBtn.setOnClickListener(listener);stopBtn.setOnClickListener(listener);}////onCreateprivate OnClickListener listener = new OnClickListener() {                @Override        public void onClick(View v) {            // TODO Auto-generated method stub            switch (v.getId()) {            case R.id.startBtn:                bindService();                break;            case R.id.stopBtn:                unBind();                break;            default:                break;            }        }                    };        private void bindService(){        Intent intent = new Intent(MainActivity.this,BindService.class);        bindService(intent, conn, Context.BIND_AUTO_CREATE);//  -----  boolean bindService(Intent service, ServiceConnection conn, int flags) //         Connect to an application service, creating it if needed. //   ---- conn - Receives information as the service is started and stopped.//        flags - Operation options for the binding. May be 0 or Context.BIND_AUTO_CREATE. //   ----- 第3个参数Context.BIND_AUTO_CREATE表明只要绑定存在,就自动建立 //        Service;同时也告知Android系统,这个Service的重要程度与调用者相同, //        除非考虑终止调用者,否则不要关闭这个Service        Log.i(TAG, " bindService111111111------bindService(intent, conn, Context.BIND_AUTO_CREATE);");    }        private void unBind(){        if(flag == true){        Log.i(TAG, "unbindService111111--------BindService-->unBind()");            unbindService(conn);            flag = false;        }    }        private ServiceConnection conn = new ServiceConnection() {                @Override        public void onServiceDisconnected(ComponentName name) {            // TODO Auto-generated method stub        Log.i(TAG, "unbindService(conn)--onServiceDisconnected--");/////单击   stop按钮未执行//        需注意的是,unbindService()方法成功后,系统并不会调用 //        onServiceDisconnected(),因为onServiceDisconnected()仅在意外断开 //        绑定时才被调用        }      // log.i(TAG, " bindService-----IBinder service");        @Override        public void onServiceConnected(ComponentName name, IBinder service) {            // TODO Auto-generated method stub            Log.i(TAG, " bindService33333333-----bindService--onServiceConnected");            MyBinder binder = (MyBinder)service;            BindService bindService = binder.getService();            bindService.MyMethod();            Log.i(TAG, " bindService66666-----bindService--onServiceConnected");            flag = true;        }    };}/* *  * 没创建时绑定  执行BindService 1 2 3 4 5 6  * 已创建时绑定  执行BindService  1  *  * 绑定后解绑定 执行 unBindService 1  *  *  *  *  */
package com.example.bindservice;import android.app.Service;import android.content.Intent;import android.os.Binder;import android.os.IBinder;import android.util.Log;public class BindService extends Service {private static final String TAG = "BindService";public void MyMethod() {for (int i = 0; i < 10; i++) {Log.i(TAG, " bindService5555555-----BindService-->MyMethod()");}}//MyMethod@Overridepublic IBinder onBind(Intent arg0) {// TODO Auto-generated method stubLog.i(TAG, " bindService222222----public IBinder onBind(Intent arg0)");return myBinder;}///onBindpublic class MyBinder extends Binder {public BindService getService() {Log.i(TAG, " bindService444444----public BindService getService()");return BindService.this;}}///MyBinderprivate MyBinder myBinder = new MyBinder();}// class BindService
<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"    tools:context="${relativePackage}.${activityClass}" >    <Button        android:id="@+id/startBtn"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_alignParentTop="true"        android:layout_centerHorizontal="true"        android:text="Start" />    <Button        android:id="@+id/stopBtn"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_alignLeft="@+id/startBtn"        android:layout_below="@+id/startBtn"        android:layout_marginTop="46dp"        android:text="Stop" /></RelativeLayout>
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"    package="com.example.bindservice"    android:versionCode="1"    android:versionName="1.0" >    <uses-sdk        android:minSdkVersion="15"        android:targetSdkVersion="16" />    <application        android:allowBackup="true"        android:icon="@drawable/ic_launcher"        android:label="@string/app_name"        android:theme="@style/AppTheme" >        <activity            android:name=".MainActivity"            android:label="@string/app_name" >            <intent-filter>                <action android:name="android.intent.action.MAIN" />                <category android:name="android.intent.category.LAUNCHER" />            </intent-filter>        </activity>        <service android:name="com.example.bindservice.BindService"></service>    </application></manifest>

android,bindService实例_第1张图片





更多相关文章

  1. Android 根文件系统启动分析
  2. Android 系统图片
  3. Android系统自带的camera默认使用后置摄像头
  4. Android 源码 修改系统默认横屏
  5. Linux系统Android SDK 下载版本,报错Warning: File /root/.androi
  6. Android执行命令行命令(获取系统Logcat)
  7. Android 调用系统浏览器 出现activitynotfoundexception 解决办
  8. 一对一直播系统开发Android ProgressBar圆形进度条颜色设置

随机推荐

  1. Android(安卓)跨进程通信(IPC)机制的探索与
  2. Android中使用ViewPager制作广告栏滚屏效
  3. Android动画详细探究
  4. Android市场官方的统计信息
  5. 在Android中加入GOOGLE统计系统
  6. android的上下文菜单---context menu
  7. Android(安卓)AES加密算法及其实现
  8. 在 Android(安卓)应用程序中使用 Interne
  9. ListView setOnItemClickListener无效原
  10. Android入门教程(四)之------Android工程